public async Task AddAsync(BuildingInputModel buildingInputModel) { var building = new Building { BuildingFullAddress = buildingInputModel.BuildingFullAddress, NumberOfEntrances = buildingInputModel.NumberOfEntrances, NumberOfFloors = buildingInputModel.NumberOfFloors, NumberOfApartments = buildingInputModel.NumberOfApartments, StreetId = buildingInputModel.StreetId, }; bool doesBuildingExist = await this.buildingsRepository.All().AnyAsync(x => x.BuildingFullAddress == building.BuildingFullAddress); bool doesBuildingWithCurrentStreetIdExist = await this.buildingsRepository .All().AnyAsync(x => x.BuildingFullAddress == building.BuildingFullAddress && x.StreetId == building.StreetId); if (doesBuildingExist) { if (!doesBuildingWithCurrentStreetIdExist) { } else { throw new ArgumentException(string.Format(GlobalConstants.ErrorMessages.BuildingFullAddressAlreadyExists, building.BuildingFullAddress)); } } await this.buildingsRepository.AddAsync(building); await this.buildingsRepository.SaveChangesAsync(); }
public async Task <IActionResult> AddBuilding(BuildingInputModel buildingInputModel) { if (!this.ModelState.IsValid) { return(this.View(buildingInputModel)); } try { await this.buildingsService.AddAsync(buildingInputModel); } catch (Exception) { return(this.View("DuplicateValue", buildingInputModel)); } return(this.RedirectToAction("Index")); }