Esempio n. 1
0
 public static string GenerateClickName(Click click)
 {
     return "Переход с видео " + click.ClickCurrentStage + " на видео " + click.ClickNextStage;
 }
Esempio n. 2
0
 public static string GenerateClickStamp(Click click)
 {
     StringBuilder sb = new StringBuilder();
     sb.Append(click.ClickCurrentStage).Append('-').Append(click.ClickNextStage).Append('-').Append(click.ClickNextTime);
     return sb.ToString();
 }
Esempio n. 3
0
        public string GenerateStats(int AdID, string beginDate, string endDate)
        {
            DatabaseService.DBServiceClient db = new DatabaseService.DBServiceClient();
            SimpleAdModel ad = db.GetAdById(AdID);
            DateTime bDate = DateTime.Parse(beginDate);
            DateTime eDate = DateTime.Parse(endDate);
            for (DateTime curDate = bDate; curDate.CompareTo(eDate) < 0; curDate = curDate.AddDays(1))
            {
                Random r = new Random(Guid.NewGuid().GetHashCode());
                int sessionCount = r.Next(10);
                for (int i = 0; i < sessionCount; i++)
                {
                    AdSession session = new AdSession
                    {
                        ActiveMilliseconds = r.Next(500),
                        AdId = AdID,
                        DateTimeStart = curDate,
                        DateTimeEnd = curDate.AddSeconds(r.Next(180)),
                        UserBrowser = StubUtils.GenerateBrowser(),
                        UserIp = StubUtils.GenerateIP(),
                        UserLocale = StubUtils.GenerateLocale(),
                        UserLocation = "TestLocation"
                    };
                    int ActivityCount = r.Next(5);
                    for (int j = 0; j < ActivityCount; j++)
                    {
                        NodeLink randomLink = ad.StateGraph.ElementAt(r.Next(ad.StateGraph.Count));
                        int rndNode = randomLink.V1;
                        int rndNodeNext = randomLink.V2;
                        int rand = r.Next(10);
                        if (rand > 5)
                        {
                            rndNode = randomLink.V2;
                            rndNodeNext = randomLink.V1;
                        }
                        Activity act = new Activity
                        {
                            StartTime = curDate,
                            EndTime = curDate,
                            CurrentStateName = ad.AdStates.First(a => a.VideoUnitId == rndNode).Name
                        };
                        for (int k = 0; k < 1; k++)
                        {

                            
                            Click c = new Click
                            {
                                ClickTime = curDate,
                                ClickType = "action-next",
                                ClickZone = "SubZone",
                                ClickCurrentStage = rndNode,
                                ClickNextStage = rndNodeNext,
                                ClickNextTime = randomLink.T
                            };
                            c.ClickText = Generator.GenerateClickName(c);
                            c.ClickStamp = Generator.GenerateClickStamp(c);
                            act.Clicks.Add(c);
                        };
                        session.Activities.Add(act);
                    }
                    db.SaveAdSession(session, true);
                }
            }
            return "success";
        }