예제 #1
0
        public async Task <IActionResult> AddCashRegister([FromRoute] int storeId, [FromBody] NewCashRegisterDto newCashRegister)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

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

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

                var cashRegisterId = await _cashRegisterRepository.AddCashRegisterAsync(storeId, newCashRegister);

                if (cashRegisterId > 0)
                {
                    return(Ok(cashRegisterId));
                }

                return(StatusCode(500, "An error ocurred in server"));
            }
            catch (Exception e)
            {
                _logger.LogCritical($"POST {Route}/{storeId}/cashregisters - {e.GetType().Name} - {e.Message} - {e.StackTrace}");
                return(StatusCode(500, "An error ocurred in server"));
            }
        }
예제 #2
0
 public async Task <bool> IsDuplicateCashRegisterAsync(int storeId, NewCashRegisterDto cashRegister)
 {
     return(await _dbContext.CashRegisters
            .AnyAsync(c =>
                      c.Name.Equals(cashRegister.Name, StringComparison.InvariantCultureIgnoreCase) &&
                      c.StoreId == storeId && c.IsActive));
 }
예제 #3
0
        public async Task <int> AddCashRegisterAsync(int storeId, NewCashRegisterDto newCashRegister)
        {
            var cashRegister = new CashRegister
            {
                StoreId  = storeId,
                Name     = newCashRegister.Name,
                IsActive = true
            };

            await _dbContext.CashRegisters.AddAsync(cashRegister);

            if (await _dbContext.SaveChangesAsync() > 0)
            {
                return(cashRegister.Id);
            }

            return(0);
        }