示例#1
0
        public async Task <bool> EditCashRegisterAsync(EditCashRegisterDto cashRegister)
        {
            var editCashRegister = await _dbContext.CashRegisters.FindAsync(cashRegister.Id);

            editCashRegister.Name = cashRegister.Name;

            return(await _dbContext.SaveChangesAsync() > 0);
        }
示例#2
0
 public async Task <bool> IsDuplicateCashRegisterAsync(int storeId, EditCashRegisterDto cashRegister)
 {
     return(await _dbContext.CashRegisters
            .AnyAsync(c =>
                      c.Name.Equals(cashRegister.Name, StringComparison.InvariantCultureIgnoreCase) &&
                      c.Id != cashRegister.Id &&
                      c.StoreId == storeId && c.IsActive));
 }
        public async Task <IActionResult> EditCashRegister([FromRoute] int storeId, [FromBody] EditCashRegisterDto cashRegister)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                if (!await _storeRepository.StoreExistsAsync(storeId))
                {
                    return(NotFound());
                }

                if (!await _cashRegisterRepository.CashRegisterExistsAsync(cashRegister.Id))
                {
                    ModelState.AddModelError("cashRegister", "Cash register not found");
                    return(BadRequest(ModelState));
                }

                if (await _cashRegisterRepository.IsDuplicateCashRegisterAsync(storeId, cashRegister))
                {
                    ModelState.AddModelError("cashRegister", "Cash register already exists");
                    return(BadRequest(ModelState));
                }

                var wasCashRegisterEdited = await _cashRegisterRepository.EditCashRegisterAsync(cashRegister);

                if (wasCashRegisterEdited)
                {
                    return(Ok());
                }

                return(NoContent());
            }
            catch (Exception e)
            {
                _logger.LogCritical($"PUT {Route}/{storeId}/cashregisters - {e.GetType().Name} - {e.Message} - {e.StackTrace}");
                return(StatusCode(500, "An error ocurred in server"));
            }
        }