예제 #1
0
        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)));
        }
예제 #2
0
        public HttpResponseMessage GetAdById(int adId)
        {
            SimpleAdModel    ad    = service.GetAdById(adId);
            SimpleAdModelDTO adDto = Mapper.Map <SimpleAdModel, SimpleAdModelDTO>(ad);

            return(Request.CreateResponse(HttpStatusCode.OK, adDto));
        }
예제 #3
0
        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);
        }
예제 #4
0
파일: Service1.cs 프로젝트: tcns/impulse
        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();
        }
예제 #5
0
        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));
        }
예제 #6
0
파일: AdMapUtils.cs 프로젝트: tcns/impulse
        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);
        }