public async Task AddAsync(StreetInputModel streetInputModel) { var street = new Street { Name = streetInputModel.Name, CityId = streetInputModel.CityId, }; bool doesStreetExist = await this.streetsRepository.All().AnyAsync(x => x.Name == street.Name); bool doesStreetWithCurrentCityIdExist = await this.streetsRepository.All().AnyAsync(x => x.Name == street.Name && x.CityId == street.CityId); if (doesStreetExist) { if (!doesStreetWithCurrentCityIdExist) { } else { throw new ArgumentException(string.Format(GlobalConstants.ErrorMessages.CityNameAlreadyExists, street.Name)); } } await this.streetsRepository.AddAsync(street); await this.streetsRepository.SaveChangesAsync(); }
public async Task <IActionResult> AddStreet(StreetInputModel streetInputModel) { if (!this.ModelState.IsValid) { return(this.View(streetInputModel)); } try { await this.streetsService.AddAsync(streetInputModel); } catch (Exception) { return(this.View("DuplicateValue", streetInputModel)); } return(this.RedirectToAction("Index")); }