public IActionResult UpdateCheckoutRecord(string id, [FromBody] CheckoutRecordForCheckInUpdateDto checkoutRecordForUpdate) { try { if (checkoutRecordForUpdate == null) { _logger.LogError("Owner object sent from client is null."); return(BadRequest("Owner object is null")); } if (!ModelState.IsValid) { _logger.LogError("Invalid owner object sent from client."); return(BadRequest("Invalid model object")); } _checkoutRecordServices.UpdateCheckoutRecord(id, checkoutRecordForUpdate); return(NoContent()); } catch (Exception ex) { _logger.LogError($"Something went wrong inside UpdateOwner action: {ex.Message}"); return(StatusCode(500, "Internal server error")); } }
public void UpdateCheckoutRecord(string id, CheckoutRecordForCheckInUpdateDto checkoutRecordForUpdate) { // Want to try to find the owner first before updating. Throw error if the owner does not exist. // What if the user attempts to modify the id field for the owner? Throw error. var checkoutRecord = GetCheckoutRecordById(id); if (checkoutRecord == null) { //_logger.LogError($"Owner with id: {id}, hasn't been found in db."); return; // TODO: need to return notfound to the user } //TODO validate new checkoutRecord //_mapper.Map(owner, ownerEntity); checkoutRecord.DateReturned = checkoutRecordForUpdate.DateReturned; checkoutRecord.AmountPaid = checkoutRecordForUpdate.AmountPaid; checkoutRecord.Notes = checkoutRecordForUpdate.Notes; checkoutRecord.HasBeenReturned = true; //leave all the rest unchanged from after the retrieve Tool originalTool = _toolServices.GetToolById(checkoutRecord.ItemCheckedOutId); ToolForUpdateDto tool = new ToolForUpdateDto() { Name = originalTool.Name, Description = originalTool.Description, DailyCost = originalTool.DailyCost, ReplacementCost = originalTool.ReplacementCost, QuantityAvailable = ++originalTool.QuantityAvailable }; _toolServices.UpdateTool(checkoutRecord.ItemCheckedOutId, tool); _checkoutRecordRepository.Update(checkoutRecord.CheckoutRecordId, checkoutRecord); }