public CampaignsResponse GetAllCampaigns() { List <Client> clientList = _context.Client.ToList(); List <Campaign> campaignsList = _context.Campaign.ToList(); List <Banner> bannersList = _context.Banner.ToList(); List <CampaignResponseWrapper> campaignResponses = new List <CampaignResponseWrapper>(); foreach (var campaign in campaignsList) { var client = _clientDb.GetClientById(campaign.IdClient); CampaignResponseWrapper campaignsResponse = CampaignToCampaignResponse.MapToCampaignResponse(campaign, client); List <BannerWrapper> bannerWrappers = new List <BannerWrapper>(); foreach (var banner in campaign.Banner) { BannerWrapper bannerWrapper = BannerToBannerWrapper.MapBannerToBannerWrapper(banner); bannerWrappers.Add(bannerWrapper); } campaignsResponse.Banners = bannerWrappers; campaignResponses.Add(campaignsResponse); } campaignResponses = campaignResponses.OrderByDescending(response => response.StartDate).ToList(); return(new CampaignsResponse { Campaigns = campaignResponses }); }
private BestPriceWrapper CalculateTotalPrice(List <Building> buildings, decimal pricePerSquareMeter) { double bestPrice = 0.0; BannerWrapper firstBanner = new BannerWrapper(); BannerWrapper secondBanner = new BannerWrapper(); for (int i = 0, j = 1; i < buildings.Count && j < buildings.Count; i++, j++) { firstBanner = CreateBannersWithPrice(i, j, buildings, pricePerSquareMeter); secondBanner = CreateBannersWithPrice(j, buildings.Count, buildings, pricePerSquareMeter); if (i == 0) { bestPrice = (double)(firstBanner.BannerPrice + secondBanner.BannerPrice); } else { double total = (double)(firstBanner.BannerPrice + secondBanner.BannerPrice); if (total < bestPrice) { bestPrice = total; } } } return(new BestPriceWrapper { FirstBanner = firstBanner, SecondBanner = secondBanner, TotalPrice = (decimal)bestPrice }); }
private int CreateBanner(BannerWrapper banner, int campaignId) { int bannerId = GetNewBannerId(); _context.Banner.Add(new Banner { IdAdvertisement = bannerId, Name = banner.BannerName, Area = banner.BannerArea, Price = banner.BannerPrice, IdCampaign = campaignId }); _context.SaveChanges(); return(bannerId); }