public async Task <IActionResult> AddStore([FromBody] NewStoreDto newStore)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                if (await _storeRepository.IsDuplicateStoreAsync(newStore))
                {
                    ModelState.AddModelError("store", "Store already exists");
                    return(BadRequest(ModelState));
                }

                var storeId = await _storeRepository.AddStoreAsync(newStore);

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

                return(StatusCode(500, "An error ocurred in server"));
            }
            catch (Exception e)
            {
                _logger.LogCritical($"POST {Route} - {e.GetType().Name} - {e.Message} - {e.StackTrace}");
                return(StatusCode(500, "An error ocurred in server"));
            }
        }
        public async Task <int> AddStoreAsync(NewStoreDto newStore)
        {
            var store = new Store
            {
                Name     = newStore.Name,
                Address  = newStore.Address,
                Phone    = newStore.Phone,
                IsActive = true
            };

            await _dbContext.Stores.AddAsync(store);

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

            return(0);
        }
 public async Task <bool> IsDuplicateStoreAsync(NewStoreDto newStore)
 {
     return(await _dbContext.Stores.AnyAsync(store => store.Name == newStore.Name && store.IsActive));
 }