public IActionResult UpdateCheckout([FromBody] UpdateCheckoutDto data) { try { if (!_checkoutsCore.CheckoutExistsById(data.Id)) { ModelState.AddModelError("Not Found", "No checkout with the provided ID was found."); return(BadRequest(ModelState)); } bool updateSucceeded = _checkoutsCore.UpdateCheckout(data); if (updateSucceeded) { return(Ok()); } else { return(StatusCode(500)); } } catch (Exception e) { ModelState.AddModelError("Error Updating Checkout", e.Message); if (e is InvalidOperationException) { return(BadRequest(ModelState)); } _logger.LogError(e.InnerException.Message); return(StatusCode(500)); } }
public bool UpdateCheckout(UpdateCheckoutDto data) { CheckoutEntity checkoutToUpdate = _repository.GetCheckOutById(data.Id); List <CheckoutEntity> checkouts = _repository.GetCheckOutsForAShift(checkoutToUpdate.ShiftDate.Date, checkoutToUpdate.LunchOrDinner).ToList(); if (checkouts.Any(c => c.StaffMemberId == data.StaffMemberId && c.Id != data.Id)) { throw new InvalidOperationException("The staff member is already assigned to a checkout for that shift"); } Mapper.Map(data, checkoutToUpdate); UtilityMethods.VerifyDatabaseSaveSuccess(_repository); return(true); }