private ChartConfiguration CreateServerConfiguration( int monitorCommandId, FrequencyTypes frequency, int agentGroupId) { var charts = (new MonitorDb()).GetChart( monitorCommandId, frequency, agentGroupId); //var unitStr = GetUnitString(frequency); if ((charts?.Count ?? 0) == 0) { lblEmptyData.Visible = true; return(null); } var dataSets = new List <DataSetItem>(); try { for (int i = 0; i < charts.Count; i++) { var chart = charts[i]; var colorCount = LibChart.Util.GetColors().Count; var dataSetItem = new DataSetItem() { Label = chart.AgentName, Data = chart.ReverseChartPointValues, BorderWidth = 1, BackgroundColor = LibChart.Util.GetColors(i % colorCount), BorderColor = LibChart.Util.GetColors()[i % colorCount], Fill = false }; dataSets.Add(dataSetItem); } var unit = _monitorCommands .Find(x => x.MonitorCommandId == monitorCommandId).Unit; var xAxesCallback = GetxAxesCallback(frequency); var units = GetMaxUnits(frequency); var xAxesTicks = new Ticks() { Display = true, BeginAtZero = true, Max = units, MaxTicksLimit = 12, Callback = (new JRaw(xAxesCallback)) }; var xAxesTicksItem = new TicksItem() { ticks = xAxesTicks }; var yAxesCallback = $@"function (value, index, values) {{ return value + ' {unit}'; }}"; var yAxesTicks = new Ticks() { Callback = new JRaw(yAxesCallback) }; var yAxesTicksItem = new TicksItem() { ticks = yAxesTicks }; var chartConfig = new ChartConfiguration { Type = ChartType.line.GetChartType(), Data = { Labels = charts[0] .ReverseChartPointMinutes .ConvertAll <string>(x => x.ToString()), Datasets = dataSets }, Options = { SpanGaps = true, Title = { Text = ddlMonitorCommands.SelectedItem.Text }, Scales = new Scales() { XAxes = new List <TicksItem>() { xAxesTicksItem }, YAxes = new List <TicksItem>() { yAxesTicksItem } } } }; return(chartConfig); } catch (Exception ex) { throw new Exception($"Exception:{ex.Message}"); } }
private ChartConfiguration CreateServerConfiguration(int monitorCommandId, FrequencyTypes frequency) { var charts = (new MonitorDb()).GetChart(monitorCommandId, frequency, -1); if ((charts?.Count ?? 0) == 0) { return(null); } var unit = _monitorCommands .Find(x => x.MonitorCommandId == monitorCommandId).Unit; var dataSets = new List <DataSetItem>(); for (var i = 0; i < charts.Count; i++) { var chart = charts[i]; var colorCount = LibChart.Util.GetColors().Count; var dataSetItem = new DataSetItem() { Label = chart.AgentName, Data = chart.ReverseChartPointValues, BorderWidth = 1, BackgroundColor = LibChart.Util.GetColors(i % colorCount), BorderColor = LibChart.Util.GetColors()[i % colorCount], Fill = false }; dataSets.Add(dataSetItem); } var xAxesCallback = @"function (value, index, values) { if (value > 0) { value = -1 * value;} return value + ' min'; }"; var xAxesTicks = new Ticks() { Display = true, BeginAtZero = true, Max = 24, MaxTicksLimit = 12, Callback = (new JRaw(xAxesCallback)) }; var xAxesTicksItem = new TicksItem() { ticks = xAxesTicks }; var yAxesCallback = $@"function (value, index, values) {{ return value + ' {unit}'; }}"; var yAxesTicks = new Ticks() { Callback = new JRaw(yAxesCallback) }; var yAxesTicksItem = new TicksItem() { ticks = yAxesTicks }; var chartConfig = new ChartConfiguration { Type = ChartType.line.GetChartType(), Data = { Labels = charts[0] .ChartPointMinutes .ConvertAll <string>(x => x.ToString()), Datasets = dataSets }, Options = { Title = { Text = ddlMonitorCommands.SelectedItem.Text }, Scales = new Scales() { XAxes = new List <TicksItem>() { xAxesTicksItem }, YAxes = new List <TicksItem>() { yAxesTicksItem } } } }; return(chartConfig); }