public async Task <HttpResponseMessage> GetVMAP(int id) { SimpleAdModel ad = await service.GetAdByIdAsync(id); Outbound.ContractTypes.VMAP vmap = VMAPConverter.GetVMAP(ad); return(Request.CreateResponse(HttpStatusCode.OK, ToXML(vmap))); }
public HttpResponseMessage GetAdById(int adId) { SimpleAdModel ad = service.GetAdById(adId); SimpleAdModelDTO adDto = Mapper.Map <SimpleAdModel, SimpleAdModelDTO>(ad); return(Request.CreateResponse(HttpStatusCode.OK, adDto)); }
public HttpResponseMessage UpdateAd(SimpleAdModelDTO modelDTO) { SimpleAdModel model = Mapper.Map <SimpleAdModelDTO, SimpleAdModel>(modelDTO); model.Init(true, User.Identity.GetUserId()); service.SaveAd(model, true); String url = Url.Link("Default", new { controller = "UserFront", action = "CreateResponse", id = model.ShortUrlKey }); var response = Request.CreateResponse(HttpStatusCode.Created, url); return(response); }
public void RemoveAdById(int id) { SimpleAdModel ad = context.SimpleAds.Find(id); var abtests = context.AbTests.Where(a => a.AdAId == id || a.AdBId == id); foreach (var ab in abtests) { context.AbTests.Remove(ab); } context.SimpleAds.Remove(ad); context.SaveChanges(); }
public ActionResult TableClickStatistics(int AdId, String StartDate = "", String EndDate = "") { SimpleAdModel ad = service.GetAdById(AdId); List <TableRowModel> table = new List <TableRowModel>(); DateTime StartDateTime = DateTime.MinValue; DateTime EndDateTime = DateTime.MaxValue; if (StartDate != "") { StartDateTime = DateTime.Parse(StartDate); } if (EndDate != "") { EndDateTime = DateTime.Parse(EndDate); } var sessionsByIP = ad.AdSessions.Where(b => b.DateTimeStart.CompareTo(StartDateTime) > 0 && b.DateTimeEnd.CompareTo(EndDateTime) < 0).GroupBy(a => a.UserIp); foreach (var session in sessionsByIP) { TableRowModel row = new TableRowModel(); row.IP = session.Key; row.Locale = session.First().UserLocale; row.Browser = session.First().UserBrowser; var clicks = session .SelectMany(a => a.Activities) .SelectMany(b => b.Clicks).GroupBy(d => d.ClickStamp).OrderByDescending(e => e.Count()); string transitions = ":"; foreach (var clickGroup in clicks) { transitions += (":" + clickGroup.First().ClickStamp); } row.Stages.Add(new Stage { Name = "Переходы", Value = transitions }); //row.FirstStage = session.SelectMany(a => a.Activities).SelectMany(b => b.Clicks).Where(c => c.ClickType == 0).Count().ToString(); //row.SecondStage = session.SelectMany(a => a.Activities).SelectMany(b => b.Clicks).Where(c => c.ClickType == 1).Count().ToString(); //row.ThirdStage = session.SelectMany(a => a.Activities).SelectMany(b => b.Clicks).Where(c => c.ClickType == 2).Count().ToString(); table.Add(row); } return(PartialView(table)); }
public static SimpleAdModelDTO GetAdDTO(SimpleAdModel ad) { SimpleAdModelDTO adDto = Mapper.Map <SimpleAdModel, SimpleAdModelDTO>(ad); foreach (var AdState in ad.AdStates) { AdStateDTO adStateDto = Mapper.Map <AdState, AdStateDTO>(AdState); adStateDto.UserElements = new HashSet <UserElementDTO>(); foreach (var UserElement in AdState.UserElements) { UserElementDTO userElementDTO = Mapper.Map <UserElement, UserElementDTO>(UserElement); userElementDTO.HtmlTags = new HashSet <HtmlTagDTO>(); foreach (var HtmlTag in UserElement.HtmlTags) { HtmlTagDTO htmlTagDTO = Mapper.Map <HtmlTag, HtmlTagDTO>(HtmlTag); userElementDTO.HtmlTags.Add(htmlTagDTO); } adStateDto.UserElements.Add(userElementDTO); } adDto.AdStates.Add(adStateDto); } return(adDto); }