/// <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()); }
/// <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)); }
/// <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)); }