diff --git a/Controllers/LendController.cs b/Controllers/LendController.cs index f599103..47a7c37 100644 --- a/Controllers/LendController.cs +++ b/Controllers/LendController.cs @@ -35,7 +35,7 @@ namespace BuecherwurmAPI.Controllers [HttpPost] public ActionResult LendsPost(LendPost lend) { - var newId = _repository.insertLendReturningId(lend); + var newId = _repository.AddLend(lend); if (newId > 0) { var item = new Lend @@ -69,9 +69,10 @@ namespace BuecherwurmAPI.Controllers } //PATCH api/leihvorgang/{id} - [HttpPatch("{id}")] - public ActionResult LendPatchById(int id, JsonPatchDocument patchDocument) + [HttpPut("{id}")] + public ActionResult LendPatchById(long id, LendPost lend) { + _repository.insertLendReturningId(id, lend); return Ok(); } } diff --git a/LongWormMemory.db b/LongWormMemory.db index bc57600..80df6e6 100644 Binary files a/LongWormMemory.db and b/LongWormMemory.db differ diff --git a/Models/Lend.cs b/Models/Lend.cs index 50ba663..debbdf3 100644 --- a/Models/Lend.cs +++ b/Models/Lend.cs @@ -24,5 +24,7 @@ namespace BuecherwurmAPI.Models public DateTime ReturnDate {get; set;} public string Customer {get; set;} + + public bool Returned { get; set; } } } diff --git a/Models/LendModel.cs b/Models/LendModel.cs index 3c2bba7..62daeb4 100644 --- a/Models/LendModel.cs +++ b/Models/LendModel.cs @@ -101,14 +101,41 @@ namespace BuecherwurmAPI.Models return null; } - public long insertLendReturningId(LendPost lend) + public long insertLendReturningId(long id, LendPost lend) { using (var command = _dbConnection.CreateCommand()) { - command.CommandText = "INSERT INTO Lends VALUES (NULL, @itemId, @returnDate, @customer, false)"; + command.CommandText = "UPDATE Lends SET (ItemId, ReturnDate, Customer, Returned) = (@itemId, @returnDate, @customer, @returned) WHERE Id = @id"; + + command.Parameters.Add(new SqliteParameter("@id", id)); command.Parameters.Add(new SqliteParameter("@itemId", lend.ItemId)); command.Parameters.Add(new SqliteParameter("@returnDate", lend.ReturnDate)); command.Parameters.Add(new SqliteParameter("@customer", lend.Customer)); + command.Parameters.Add(new SqliteParameter("@returned", lend.Returned)); + + + var success = command.ExecuteNonQuery(); + + if (success == 1) + { + return (long)command.ExecuteScalar(); + } + + return -1; + } + } + + public long AddLend (LendPost lend) + { + using (var command = _dbConnection.CreateCommand()) + { + // funktioniert das so? + //muss ProduktId übergeben werden? + command.CommandText = @"INSERT INTO Lends (itemid, ReturnDate, Customer, Returned) VALUES (@ItemId, @ReturnDate, @Customer, false)"; + + command.Parameters.Add(new SqliteParameter("@ItemId", lend.ItemId)); + command.Parameters.Add(new SqliteParameter("@ReturnDate", lend.ReturnDate)); + command.Parameters.Add(new SqliteParameter("@Customer", lend.Customer)); var success = command.ExecuteNonQuery();