Exemple #1
0
        public CampaignDto CreateCampaign(CampaignCreationDto dto)
        {
            var buildings       = GetTwoBuildings(dto.FromIdBuilding, dto.ToIdBuilding);
            var divideBuildings = _dividingDividingService.DivideBuildings(buildings);
            var leftBanner      = _bannerService.CreateBanner(divideBuildings.First, dto.PricePerSquareMeter);
            var rightBanner     = _bannerService.CreateBanner(divideBuildings.Second, dto.PricePerSquareMeter);
            var listOfBanners   = new List <Banner> {
                leftBanner, rightBanner
            };
            var campaign = AddCampaign(dto, buildings, listOfBanners);

            _bannerService.UpdateBanners(campaign, leftBanner, rightBanner);
            _context.SaveChanges();
            return(ConvertCampaignToCampaignDto(campaign));
        }
Exemple #2
0
        private Campaign AddCampaign(CampaignCreationDto dto, Pair <Building, Building> buildings, List <Banner> banners)
        {
            var client   = GetClient(dto.IdClient);
            var campaign = _context.Campaigns.Add(new Campaign
            {
                Client              = client,
                IdClient            = dto.IdClient,
                EndDate             = dto.EndDate,
                Banners             = banners,
                FromBuilding        = buildings.First,
                ToBuilding          = buildings.Second,
                FromIdBuilding      = buildings.First.IdBuilding,
                ToIdBuilding        = buildings.Second.IdBuilding,
                StartDate           = dto.StartDate,
                PricePerSquareMeter = dto.PricePerSquareMeter
            });

            _context.SaveChanges();
            return(campaign.Entity);
        }
        public IActionResult CreateCampaign(CampaignCreationDto dto)
        {
            try
            {
                var campaign = _service.CreateCampaign(dto);
                return(Created("", campaign)); //maybe put something here
            }

            catch (NoSuchBuildingException)
            {
                return(BadRequest("building with given id doesn't exist"));
            }
            catch (BuildingsOnDifferentStreetsException)
            {
                return(BadRequest("provided buildings are on different streets"));
            }
            catch (NoSuchClientException)
            {
                return(BadRequest("we don't have a client with provided id"));
            }
        }