Exemplo n.º 1
0
        /// <summary>
        /// Returns last 30 days of daily user sessions.
        /// </summary>
        /// <returns>string</returns>
        public override string Data()
        {
            StringBuilder           Result     = new StringBuilder("Count|Bot|Agent");
            List <SessionUserAgent> userAgents = DefaultUserSessionService.GetUserAgents();

            foreach (SessionUserAgent item in userAgents)
            {
                Result.Append($"\r{item.Count}|{item.IsBot}|{item.UserAgent}");
            }

            return(Result.ToString());
        }
Exemplo n.º 2
0
        /// <summary>
        /// Returns last 24 hours of user sessions by quarter of an hour.
        /// </summary>
        /// <returns>string</returns>
        public override string Data()
        {
            ChartModel Result = new ChartModel();

            Result.ChartTitle = "Hourly Visitor Statistics";

            List <SessionHourly> sessionData = DefaultUserSessionService.GetHourlyData()
                                               .OrderBy(o => o.Date)
                                               .ThenBy(h => h.Hour)
                                               .ThenBy(q => q.Quarter)
                                               .Take(96)
                                               .ToList();

            if (sessionData == null)
            {
                return(String.Empty);
            }

            Result.DataNames.Add(new KeyValuePair <ChartDataType, string>(ChartDataType.String, "Hour"));
            Result.DataNames.Add(new KeyValuePair <ChartDataType, string>(ChartDataType.Number, "Total Visits"));
            Result.DataNames.Add(new KeyValuePair <ChartDataType, string>(ChartDataType.Number, "Human Visits"));
            Result.DataNames.Add(new KeyValuePair <ChartDataType, string>(ChartDataType.Number, "Mobile Visits"));
            Result.DataNames.Add(new KeyValuePair <ChartDataType, string>(ChartDataType.Number, "Bot Visits"));
            Result.DataNames.Add(new KeyValuePair <ChartDataType, string>(ChartDataType.Number, "Bounced"));

            foreach (SessionHourly hour in sessionData)
            {
                List <Decimal> datavalues = new List <decimal>();
                Result.DataValues.Add(
                    $"{hour.Date.ToString(Thread.CurrentThread.CurrentUICulture.DateTimeFormat.ShortDatePattern.Replace("y", ""))} H{hour.Hour.ToString(Thread.CurrentThread.CurrentUICulture)} Q{hour.Quarter}",
                    datavalues);

                datavalues.Add(hour.TotalVisits);
                datavalues.Add(hour.HumanVisits);
                datavalues.Add(hour.MobileVisits);
                datavalues.Add(hour.BotVisits);
                datavalues.Add(hour.Bounced);
            }

            return(JsonConvert.SerializeObject(Result));
        }
Exemplo n.º 3
0
        /// <summary>
        /// Returns last 26 weeks of user sessions by week.
        /// </summary>
        /// <returns>string</returns>
        public override string Data()
        {
            ChartModel Result = new ChartModel();

            Result.ChartTitle = "Weekly Visitor Statistics";

            List <SessionWeekly> sessionData = DefaultUserSessionService.GetWeeklyData()
                                               .OrderBy(o => o.Year)
                                               .ThenBy(o => o.Week)
                                               .Take(26)
                                               .ToList();

            if (sessionData == null)
            {
                return(String.Empty);
            }

            Result.DataNames.Add(new KeyValuePair <ChartDataType, string>(ChartDataType.String, "Week"));
            Result.DataNames.Add(new KeyValuePair <ChartDataType, string>(ChartDataType.Number, "Total Visits"));
            Result.DataNames.Add(new KeyValuePair <ChartDataType, string>(ChartDataType.Number, "Human Visits"));
            Result.DataNames.Add(new KeyValuePair <ChartDataType, string>(ChartDataType.Number, "Mobile Visits"));
            Result.DataNames.Add(new KeyValuePair <ChartDataType, string>(ChartDataType.Number, "Bot Visits"));
            Result.DataNames.Add(new KeyValuePair <ChartDataType, string>(ChartDataType.Number, "Bounced"));

            foreach (SessionWeekly week in sessionData)
            {
                List <Decimal> datavalues = new List <decimal>();
                Result.DataValues.Add(
                    week.Week.ToString(Thread.CurrentThread.CurrentUICulture),
                    datavalues);

                datavalues.Add(week.TotalVisits);
                datavalues.Add(week.HumanVisits);
                datavalues.Add(week.MobileVisits);
                datavalues.Add(week.BotVisits);
                datavalues.Add(week.Bounced);
            }

            return(JsonConvert.SerializeObject(Result));
        }
        /// <summary>
        /// Returns last 30 days of daily user sessions.
        /// </summary>
        /// <returns>string</returns>
        public override string Data()
        {
            ChartModel Result = new ChartModel();

            Result.ChartTitle = "Daily Visitor Statistics";

            List <SessionDaily> sessionData = DefaultUserSessionService.GetDailyData()
                                              .OrderBy(o => o.Date)
                                              .Take(30)
                                              .ToList();

            if (sessionData == null)
            {
                return(String.Empty);
            }

            Result.DataNames.Add(new KeyValuePair <ChartDataType, string>(ChartDataType.String, "Day"));
            Result.DataNames.Add(new KeyValuePair <ChartDataType, string>(ChartDataType.Number, "Total Visits"));
            Result.DataNames.Add(new KeyValuePair <ChartDataType, string>(ChartDataType.Number, "Human Visits"));
            Result.DataNames.Add(new KeyValuePair <ChartDataType, string>(ChartDataType.Number, "Mobile Visits"));
            Result.DataNames.Add(new KeyValuePair <ChartDataType, string>(ChartDataType.Number, "Bot Visits"));
            Result.DataNames.Add(new KeyValuePair <ChartDataType, string>(ChartDataType.Number, "Bounced"));

            foreach (SessionDaily day in sessionData)
            {
                List <Decimal> datavalues = new List <decimal>();
                Result.DataValues.Add(
                    day.Date.ToString(Thread.CurrentThread.CurrentUICulture.DateTimeFormat.ShortDatePattern),
                    datavalues);

                datavalues.Add(day.TotalVisits);
                datavalues.Add(day.HumanVisits);
                datavalues.Add(day.MobileVisits);
                datavalues.Add(day.BotVisits);
                datavalues.Add(day.Bounced);
            }

            return(JsonConvert.SerializeObject(Result));
        }