private void GetOtherStatistics() { DashboardViewModel dashboard = new DashboardViewModel(); dashboard.ViewModelEvent += dashboard_ViewModelEvent; OverallStats overall = dashboard.GetOtherStatistics(ConfigurationManager.ConnectionStrings["CPDatabase"].ConnectionString); if (overall != null) { spanUsers.Attributes.Add("data-value", overall.TotalUsers.ToString()); spanResellers.Attributes.Add("data-value", overall.TotalResellers.ToString()); spanCompanies.Attributes.Add("data-value", overall.TotalCompanies.ToString()); spanMailboxes.Attributes.Add("data-value", overall.TotalMailboxes.ToString()); spanDistributionGroups.Attributes.Add("data-value", overall.TotalDistributionGroups.ToString()); spanContacts.Attributes.Add("data-value", overall.TotalMailContacts.ToString()); spanTotalCitrixUsers.Attributes.Add("data-value", overall.TotalCitrixUsers.ToString()); spanTotalApps.Attributes.Add("data-value", overall.TotalCitrixApps.ToString()); spanTotalServers.Attributes.Add("data-value", overall.TotalCitrixServers.ToString()); spanTodayNewCompanies.Attributes.Add("data-value", overall.TodayCompanies.ToString()); spanTodayNewUsers.Attributes.Add("data-value", overall.TodayUsers.ToString()); // Set mailbox space allocated lbUsedVsAllocatedMailbox.Text = string.Format("{0}{1} / {2}{3}", overall.TotalUsedEmailSpace.ToString("#.##"), overall.TotalUsedEmailSpaceSizeType, overall.TotalAllocatedEmailSpace.ToString("#.##"), overall.TotalAllocatedEmailSpaceSizeType); if (overall.TotalUsedEmailSpaceInKB > 0 && overall.TotalAllocatedEmailSpaceInKB > 0) progBarMailboxesUsedVsAllocated.Attributes.Add("data-percentage", string.Format("{0}%", (int)Math.Round((decimal)(100 * overall.TotalUsedEmailSpaceInKB) / overall.TotalAllocatedEmailSpaceInKB))); // Set mailbox progress bar lbTotalMailboxes.Text = overall.TotalMailboxes.ToString(); if (overall.TotalMailboxes > 0 && overall.TotalUsers > 0) progBarMailboxes.Attributes.Add("data-percentage", string.Format("{0}%", (int)Math.Round((double)(100 * overall.TotalMailboxes) / overall.TotalUsers))); // Set citrix progress bar lbTotalCitrixUsers.Text = overall.TotalCitrixUsers.ToString(); if (overall.TotalCitrixUsers > 0 && overall.TotalUsers > 0) progBarCitrix.Attributes.Add("data-percentage", string.Format("{0}%", (int)Math.Round((double)(100 * overall.TotalCitrixUsers) / overall.TotalUsers))); // Set lync progress bar lbTotalLyncUsers.Text = overall.TotalLyncUsers.ToString(); if (overall.TotalLyncUsers >0 && overall.TotalUsers > 0) progBarLync.Attributes.Add("data-percentage", string.Format("{0}%", (int)Math.Round((double)(100 * overall.TotalLyncUsers) / overall.TotalUsers))); } }
private void GetAreaChart() { DashboardViewModel dashboard = new DashboardViewModel(); dashboard.ViewModelEvent += dashboard_ViewModelEvent; // Get statistics List<Dictionary<string, object>> values = dashboard.GetAreaChart(); if (values != null) { Highcharts areaChart = new Highcharts("areaChart"); areaChart.InitChart(new Chart() { DefaultSeriesType = ChartTypes.Area, BackgroundColor = new DotNet.Highcharts.Helpers.BackColorOrGradient(Color.Transparent), Height = 300 }); areaChart.SetPlotOptions(new PlotOptions() { Series = new PlotOptionsSeries() { ConnectNulls = true, ConnectEnds = true } }); areaChart.SetLegend(new DotNet.Highcharts.Options.Legend() { Align = DotNet.Highcharts.Enums.HorizontalAligns.Center, Layout = DotNet.Highcharts.Enums.Layouts.Horizontal, VerticalAlign = DotNet.Highcharts.Enums.VerticalAligns.Bottom, BorderWidth = 0 }); areaChart.SetCredits(new DotNet.Highcharts.Options.Credits() { Enabled = false }); areaChart.SetTitle(new DotNet.Highcharts.Options.Title() { Text = "" }); YAxis yAxis = new YAxis(); yAxis.Title = new DotNet.Highcharts.Options.YAxisTitle() { Text = "" }; yAxis.Min = 0; XAxis xAxis = new XAxis(); xAxis.Categories = values[0].Keys.ToArray(); List<Series> seriesCollection = new List<Series>(); Series seriesUsers = new Series(); seriesUsers.Data = new DotNet.Highcharts.Helpers.Data(values[0].Values.ToArray()); seriesUsers.Name = "Users"; seriesCollection.Add(seriesUsers); Series seriesMailbox = new Series(); seriesMailbox.Data = new DotNet.Highcharts.Helpers.Data(values[1].Values.ToArray()); seriesMailbox.Name = "Mailbox"; seriesCollection.Add(seriesMailbox); if (StaticSettings.CitrixEnabled) { Series seriesCitrix = new Series(); seriesCitrix.Data = new DotNet.Highcharts.Helpers.Data(values[2].Values.ToArray()); seriesCitrix.Name = "Citrix"; seriesCollection.Add(seriesCitrix); } areaChart.SetXAxis(xAxis); areaChart.SetYAxis(yAxis); areaChart.SetSeries(seriesCollection.ToArray()); litAreaChart.Text = areaChart.ToHtmlString(); } else litAreaChart.Text = "Error populating chart."; }
private void GetBarChart() { DashboardViewModel dashboard = new DashboardViewModel(); dashboard.ViewModelEvent += dashboard_ViewModelEvent; Dictionary<string, object> mdbData = dashboard.GetDatabaseSizeChart(ConfigurationManager.ConnectionStrings["CPDatabase"].ConnectionString); if (mdbData != null) { var databaseNames = from d in mdbData orderby d.Key select d.Key; var databaseValues = from d in mdbData orderby d.Key select d.Value; List<object> arrayValues = databaseValues.ToList(); List<DotNet.Highcharts.Options.Point> points = new List<DotNet.Highcharts.Options.Point>(); for (int i = 0; i < arrayValues.Count; i++) { double theValue = 0; double.TryParse(arrayValues[i].ToString(), out theValue); points.Add(new DotNet.Highcharts.Options.Point() { Y = Number.GetNumber(theValue), Color = decimal.Parse(arrayValues[i].ToString()) > 500 ? System.Drawing.Color.Red : System.Drawing.Color.Blue }); } Highcharts columnChart = new Highcharts("mdbBarChart") .SetOptions(new DotNet.Highcharts.Helpers.GlobalOptions() { Lang = new DotNet.Highcharts.Helpers.Lang() { DecimalPoint = ".", ThousandsSep = "," } }) .InitChart(new Chart { DefaultSeriesType = ChartTypes.Column, BackgroundColor = new DotNet.Highcharts.Helpers.BackColorOrGradient(Color.Transparent), Height = 300 }) .SetTitle(new Title { Text = "" }) .SetCredits(new Credits { Enabled = false }) .SetXAxis(new XAxis { Categories = databaseNames.ToArray() }) .SetYAxis(new YAxis { Title = new YAxisTitle { Text = "GB" }, Labels = new YAxisLabels() { Enabled = true }, PlotLines = new[] { new YAxisPlotLines { Value = 0, Width = 1 } } }) .SetLegend(new Legend { Enabled = false }) .SetPlotOptions(new PlotOptions() { Column = new PlotOptionsColumn() { DataLabels = new PlotOptionsColumnDataLabels() { Enabled = true, Style = "fontWeight: 'bold'" } } }) .SetSeries(new[] { new Series { Name = "GB", Data = new DotNet.Highcharts.Helpers.Data(points.ToArray()) } } ); litBarChart.Text = columnChart.ToHtmlString(); // Change the div if (databaseNames.Count() > 8) divBarChart.Style.Value = "col-sm-12 col-md-12"; // If more than 8 database then make the graph full length of page else divBarChart.Style.Value = "col-sm-6 col-md-6"; // Otherwise half length } else litBarChart.Text = "Error populating the bar chart"; }