private void UpdateRequestSummary() { // Get the data. RequestSummaryData data = service.GetRequestSummaryData(context); if (data != null) { // Find the row for the current month. RequestSummaryData.TRequestSummaryRow row = null; foreach (RequestSummaryData.TRequestSummaryRow r in data.TRequestSummary.Rows) { DateTime date = r.Month; if ((date.Year == context.Timestamp.Year) && (date.Month == context.Timestamp.Month)) { row = r; row.RequestCount = row.RequestCount + 1; break; } } // If the current month was not found, it must be added to the data. if (null == row) { row = data.TRequestSummary.NewTRequestSummaryRow(); row.Month = new DateTime(context.Timestamp.Year, context.Timestamp.Month, 1, 0, 0, 0); row.RequestCount = 1; row.VisitsCount = 0; data.TRequestSummary.Rows.Add(row); } // Save the data. service.SaveRequestSummaryData(context, data); } }
private void LoadRequestData() { RequestStatisticService service = (RequestStatisticService)Portal.API.Statistics.Statistic.GetService(typeof(RequestStatisticService)); RequestSummaryData data = service.GetRequestSummaryData(Context); //data.TRequestSummary.DefaultView.Sort = "Month DESC"; List <RequestSummaryEntry> entries = new List <RequestSummaryEntry>(); // Max. number of months to display will be set to 12 (1 year). int monthCount = data.TRequestSummary.Rows.Count > 12 ? 12 : data.TRequestSummary.Rows.Count; for (int monthIndex = 0; monthIndex < monthCount; ++monthIndex) { RequestSummaryData.TRequestSummaryRow row = (RequestSummaryData.TRequestSummaryRow)data.TRequestSummary.Rows[(data.TRequestSummary.Rows.Count - 1) - monthIndex]; RequestSummaryEntry entry = new RequestSummaryEntry(); entry.Month = row.Month; entry.RequestsPerDay = GetRequestsPerDay(row.Month, row.RequestCount); entry.VisitsPerDay = GetVisitsPerDay(row.Month, row.VisitsCount); entry.TotalRequests = row.RequestCount; entry.TotalVisits = row.VisitsCount; entries.Add(entry); } repeaterOverview.DataSource = entries; repeaterOverview.DataBind(); // Show the error message, if an error is occured in the service. Exception ex = service.ConsumeLastException(); if (ex != null) { _errorMsg.Visible = true; _errorMsg.Text = ex.Message; } }
private void LoadSummaryData() { // Use ConfigAgent to get the month to view. ConfigAgent configAgent = ((IStateProcessor)Parent).ConfigAgent; RequestStatisticService service = (RequestStatisticService)Portal.API.Statistics.Statistic.GetService(typeof(RequestStatisticService)); RequestUrlData urlData = service.GetRequestUrlData(Context, configAgent.Month); RequestSummaryData summaryData = service.GetRequestSummaryData(Context); // Contains all entries for the summary table. List <RequestSummaryEntry> entries = new List <RequestSummaryEntry>(); // Calculate total requests of this month. double totalRequests = 0.0; foreach (RequestUrlData.TRequestUrlRow row in urlData.TRequestUrl.Rows) { totalRequests += row.RequestCount; } DataRow[] rows = summaryData.TRequestSummary.Select("Month = " + configAgent.Month.ToString(@"#MM\/dd\/yyyy#")); double totalVisits = 0.0; if (rows.Length > 0) { RequestSummaryData.TRequestSummaryRow row = (RequestSummaryData.TRequestSummaryRow)rows[0]; totalVisits = row.VisitsCount; } // Get the number of days. int dayCount = 1; DateTime now = DateTime.Now; if ((now.Year == configAgent.Month.Year) && (now.Month == configAgent.Month.Month)) { // Current month, so we use the days since 1st of this month. dayCount = now.Day; } else { dayCount = DateTime.DaysInMonth(configAgent.Month.Year, configAgent.Month.Month); } entries.Add(new RequestSummaryEntry(Language.GetText(Portal.API.Module.GetModuleControl(this), "sumRequests"), totalRequests)); entries.Add(new RequestSummaryEntry(Language.GetText(Portal.API.Module.GetModuleControl(this), "sumVisits"), totalVisits)); //entries.Add(new RequestSummaryEntry("", 0.0)); entries.Add(new RequestSummaryEntry(Language.GetText(Portal.API.Module.GetModuleControl(this), "requestsPerDay"), totalRequests / (double)dayCount)); entries.Add(new RequestSummaryEntry(Language.GetText(Portal.API.Module.GetModuleControl(this), "visitsPerDay"), totalVisits / (double)dayCount)); repeaterSummary.DataSource = entries; repeaterSummary.DataBind(); labelMonthlySummary.Text = string.Format(Language.GetText(Portal.API.Module.GetModuleControl(this), "monthlyStatisticTitle"), configAgent.Month.ToString("MMMM"), configAgent.Month.ToString("yyyy")); }