示例#1
0
        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));
            }
        }
示例#2
0
        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);
        }