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)); }
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")); } }