Exemple #1
0
        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();
        }
Exemple #2
0
        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"));
        }