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