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")); } }
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)); }
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); }