public async Task <IActionResult> AddCityAsync([FromBody] EditCityViewModel viewModel) { var city = viewModel.Adapt <City>(); var conflictingCities = await _cityRepository.GetAllAsync(x => x.Ibge == city.Ibge || (x.Name == city.Name && x.UF == city.UF)); if (conflictingCities.Any()) { return(Conflict($"Conflicting cities found")); } _cityRepository.Add(city); await _unitOfWork.CompleteAsync(); var result = city.Adapt <CityViewModel>(); return(Ok(result)); }
public async Task <IActionResult> EditCityAsync([FromRoute] int id, [FromBody] EditCityViewModel viewModel) { var city = await _cityRepository.GetAsync(id); if (city == null) { return(NotFound()); } var conflictingCities = await _cityRepository.GetAllAsync(x => x.Id != id && (x.Ibge == city.Ibge || (x.Name == city.Name && x.UF == city.UF))); if (conflictingCities.Any()) { return(Conflict($"Conflicting cities found")); } viewModel.Adapt(city); await _unitOfWork.CompleteAsync(); var result = city.Adapt <CityViewModel>(); return(Ok(result)); }