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