Exemplo n.º 1
0
        protected void chrtFleetComparison_Click(object sender, ImageMapEventArgs e)
        {
            if (e.PostBackValue.StartsWith("HideLegend"))
            {
                ShowLegend = false;
                chrtComparison.Legends["RightLegend"].Enabled = false;
                return;
            }
            if (e.PostBackValue.StartsWith("ShowLegend"))
            {
                ShowLegend = true;
                chrtComparison.Legends["RightLegend"].Enabled = true;
                return;
            }

            if (e.PostBackValue.StartsWith("LegendClick"))
            {
                var seriesName = e.PostBackValue.Split('/')[1];
                var gs         = GraphInformation.SeriesData.Find(s => s.SeriesName == seriesName);
                gs.Displayed = !gs.Displayed;

                ShowSeries.AddOrRemoveString(gs.SeriesName);
                return;
            }
            if (e.PostBackValue.StartsWith("LegendShowLabels"))
            {
                var seriesName = e.PostBackValue.Split('/')[1];
                var gs         = GraphInformation.SeriesData.Find(s => s.SeriesName == seriesName);

                gs.ShowLabel = !gs.ShowLabel;

                GraphInformation.ShowLabelSeriesNames.AddOrRemoveString(gs.SeriesName);
                return;
            }
        }
Exemplo n.º 2
0
        public void LoadUseageData(IEnumerable <UsageStatisticsDataRow> statisticsData)
        {
            var colourNumber  = 0;
            var seriesToGraph = new List <GraphSeries>();

            foreach (var s in statisticsData)
            {
                var pageName = s.PageName;
                ShowSeries.Add(pageName);
                var series = new GraphSeries(pageName)
                {
                    GraphColour =
                        ColorTranslator.FromHtml("#" + GraphingColours.ColourValues[colourNumber]),
                    Displayed = true
                };
                series.Xvalue.Add(pageName);
                series.Yvalue.Add(s.PageRequests);

                seriesToGraph.Add(series);



                colourNumber++;
            }

            GraphInformation.SeriesData = seriesToGraph;
        }
        public void LoadChart(List <FleetComparisonEntity> comparisonData)
        {
            if (!comparisonData.Any())
            {
                return;
            }

            var series = comparisonData.Select(d => d.FleetGroupName).Distinct().ToList();

            ShowSeries.AddRange(series.ToArray());

            var colourNumber  = 0;
            var seriesToGraph = new List <GraphSeries>();

            foreach (var s in series)
            {
                seriesToGraph.Add(new GraphSeries(s)
                {
                    GraphColour = ColorTranslator.FromHtml("#" + GraphingColours.ColourValues[colourNumber]),
                    Displayed   = true
                });
                colourNumber++;
            }


            var minYear     = comparisonData.Min(d => d.Year);
            var minWeekYear = comparisonData.Where(d => d.Year == minYear).Min(d => d.Week);

            var maxYear     = comparisonData.Max(d => d.Year);
            var maxWeekYear = comparisonData.Where(d => d.Year == maxYear).Max(d => d.Week);

            int currentWeek = minWeekYear;
            int currentYear = minYear;

            do
            {
                foreach (var stg in seriesToGraph)
                {
                    stg.Xvalue.Add(currentWeek);
                    var dataEntry = comparisonData.FirstOrDefault(d => d.FleetGroupName == stg.SeriesName &&
                                                                  d.Year == currentYear &&
                                                                  d.Week == currentWeek);
                    int yVal = 0;
                    if (dataEntry != null)
                    {
                        yVal = dataEntry.Additions;
                    }
                    stg.Yvalue.Add(yVal);
                }

                currentWeek++;
                if (currentWeek == 13)
                {
                    currentWeek = 1;
                    currentYear++;
                }
            } while (currentWeek != maxWeekYear && currentYear != maxYear);

            GraphInformation.SeriesData = seriesToGraph;
        }
        public void LoadChart(List <FleetStatusRow> fsd, PercentageDivisorType percentType)
        {
            var seriesList = new List <GraphSeries>();

            hfPercentageValues.Value = percentType.ToString();

            var topics = Enum.GetValues(typeof(AvailabilityTopic));

            ShowSeries.Add(TopicTranslation.GetAvailabilityTopicDescription(AvailabilityTopic.Utilization));
            ShowSeries.Add(TopicTranslation.GetAvailabilityTopicDescription(AvailabilityTopic.OnRent));

            foreach (AvailabilityTopic t in topics)
            {
                if (percentType == PercentageDivisorType.Values)
                {
                    if (t == AvailabilityTopic.Utilization || t == AvailabilityTopic.UtilizationInclOverdue)
                    {
                        continue;
                    }
                }
                else
                {
                    if (t == AvailabilityTopic.OnRent)
                    {
                        continue;
                    }
                }
                var seriesName    = TopicTranslation.GetAvailabilityTopicDescription(t);
                var displaySeries = false;
                if (ShowSeries.Count == 0)
                {
                    if (t == AvailabilityTopic.Utilization || t == AvailabilityTopic.OnRent)
                    {
                        displaySeries = true;
                    }
                }
                else
                {
                    displaySeries = ShowSeries.Contains(seriesName);
                }

                var gs = new GraphSeries(seriesName)
                {
                    GraphColour = TopicTranslation.GetAvailabilityColour(t),
                    Displayed   = displaySeries
                };
                foreach (var f in fsd)
                {
                    gs.Xvalue.Add(f.Day);

                    var yVal = percentType == PercentageDivisorType.Values ? f.GetValue(t) : f.GetValuePercent(t);

                    gs.Yvalue.Add(yVal);
                }
                seriesList.Add(gs);
            }

            GraphInformation.SeriesData = seriesList;
        }
        private void LoadDifferenceChart(IEnumerable <ForecastedFleetSizeEntity> setA, IEnumerable <ForecastedFleetSizeEntity> setB)
        {
            var seriesList = new List <GraphSeries>();

            var series = new List <string> {
                "Forecast Demand Gap", "Demand Gap Scenario A", "Demand Gap Scenario B"
            };

            ShowSeries.AddRange(series.ToArray());

            var expectedSeries = new GraphSeries(series[0])
            {
                GraphColour = Color.DarkGreen,
                Displayed   = true
            };

            var expectedWithAddsA = new GraphSeries(series[1])
            {
                GraphColour = Color.DarkOrchid,
                Displayed   = true
            };

            var expectedWithAddsB = new GraphSeries(series[2])
            {
                GraphColour = Color.OrangeRed,
                Displayed   = true
            };

            foreach (var f in setA)
            {
                expectedSeries.Xvalue.Add(f.Week);
                expectedSeries.Yvalue.Add(((double)f.ExpectedFleet - f.UnConstrained));
                expectedWithAddsA.Xvalue.Add(f.Week);
                expectedWithAddsA.Yvalue.Add((double)f.ExpectedWithAdditionPlan - f.UnConstrained);
            }


            foreach (var f in setB)
            {
                expectedWithAddsB.Xvalue.Add(f.Week);
                expectedWithAddsB.Yvalue.Add((double)f.ExpectedWithAdditionPlan - f.UnConstrained);
            }


            seriesList.Add(expectedSeries);
            seriesList.Add(expectedWithAddsA);
            seriesList.Add(expectedWithAddsB);

            GraphInformation.SeriesData = seriesList;
        }
Exemplo n.º 6
0
        public void LoadChart(List <TotalContributionRow> comparisonData)
        {
            if (!comparisonData.Any())
            {
                return;
            }

            var series = new List <string> {
                "Expected Revenue", "Scenario A Revenue", "Scenario B Revenue"
            };

            ShowSeries.AddRange(series.ToArray());

            var expectedSeries = new GraphSeries(series[0])
            {
                GraphColour = Color.DarkGreen,
                Displayed   = true
            };

            var expectedWithAddsA = new GraphSeries(series[1])
            {
                GraphColour = Color.DarkOrchid,
                Displayed   = true
            };

            var expectedWithAddsB = new GraphSeries(series[2])
            {
                GraphColour = Color.OrangeRed,
                Displayed   = true
            };

            foreach (var f in comparisonData)
            {
                var monthName = CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(f.Month);
                expectedSeries.Xvalue.Add(monthName);
                expectedSeries.Yvalue.Add((f.ExpectedContribution));
                expectedWithAddsA.Xvalue.Add(monthName);
                expectedWithAddsA.Yvalue.Add(f.ExpectedContributionA);
                expectedWithAddsB.Xvalue.Add(monthName);
                expectedWithAddsB.Yvalue.Add(f.ExpectedContributionB);
            }

            var seriesList = new List <GraphSeries> {
                expectedSeries, expectedWithAddsA, expectedWithAddsB
            };

            GraphInformation.SeriesData = seriesList;
        }
        private void LoadValuesChart(IEnumerable <ForecastedFleetSizeEntity> setA, IEnumerable <ForecastedFleetSizeEntity> setB)
        {
            var seriesList = new List <GraphSeries>();

            var series = new List <string> {
                "Expected", "Unconstrained", "Nessesary"
                , "Max A", "Min A", "Expected With Adds A", "Max B", "Min B", "Expected With Adds B"
            };

            ShowSeries.AddRange(series.ToArray());

            var expectedSeries = new GraphSeries(series[0])
            {
                GraphColour = Color.DarkGreen,
                Displayed   = true
            };

            var unconstrainedSeries = new GraphSeries(series[1])
            {
                GraphColour = Color.CornflowerBlue,
                Displayed   = true
            };

            var nessesarySeries = new GraphSeries(series[2])
            {
                GraphColour = Color.Brown,
                Displayed   = true
            };

            var maxSeriesA = new GraphSeries(series[3])
            {
                GraphColour = Color.Magenta,
                Displayed   = false
            };

            GraphInformation.HiddenSeriesNames.Add(series[3]);

            var minSeriesA = new GraphSeries(series[4])
            {
                GraphColour = Color.Magenta,
                Displayed   = false
            };

            GraphInformation.HiddenSeriesNames.Add(series[4]);

            var expectedWithAddsA = new GraphSeries(series[5])
            {
                GraphColour = Color.DarkOrchid,
                Displayed   = true
            };


            var maxSeriesB = new GraphSeries(series[6])
            {
                GraphColour = Color.Orange,
                Displayed   = false
            };

            GraphInformation.HiddenSeriesNames.Add(series[6]);


            var minSeriesB = new GraphSeries(series[7])
            {
                GraphColour = Color.Orange,
                Displayed   = false
            };

            GraphInformation.HiddenSeriesNames.Add(series[7]);

            var expectedWithAddsB = new GraphSeries(series[8])
            {
                GraphColour = Color.OrangeRed,
                Displayed   = true
            };

            foreach (var f in setA)
            {
                expectedSeries.Xvalue.Add(f.Week);
                unconstrainedSeries.Xvalue.Add(f.Week);
                nessesarySeries.Xvalue.Add(f.Week);
                maxSeriesA.Xvalue.Add(f.Week);
                minSeriesA.Xvalue.Add(f.Week);

                expectedSeries.Yvalue.Add((double)f.ExpectedFleet);
                unconstrainedSeries.Yvalue.Add(f.UnConstrained);
                nessesarySeries.Yvalue.Add(f.Nessesary);
                maxSeriesA.Yvalue.Add(f.MaxFleet);
                minSeriesA.Yvalue.Add(f.MinFleet);
                expectedWithAddsA.Xvalue.Add(f.Week);
                expectedWithAddsA.Yvalue.Add((double)f.ExpectedWithAdditionPlan);
            }


            foreach (var f in setB)
            {
                maxSeriesB.Xvalue.Add(f.Week);
                minSeriesB.Xvalue.Add(f.Week);
                maxSeriesB.Yvalue.Add(f.MaxFleet);
                minSeriesB.Yvalue.Add(f.MinFleet);
                expectedWithAddsB.Xvalue.Add(f.Week);
                expectedWithAddsB.Yvalue.Add((double)f.ExpectedWithAdditionPlan);
            }


            seriesList.Add(expectedSeries);
            seriesList.Add(unconstrainedSeries);
            seriesList.Add(nessesarySeries);
            seriesList.Add(maxSeriesA);
            seriesList.Add(minSeriesA);
            seriesList.Add(maxSeriesB);
            seriesList.Add(minSeriesB);
            seriesList.Add(expectedWithAddsA);
            seriesList.Add(expectedWithAddsB);

            GraphInformation.SeriesData = seriesList;
        }
Exemplo n.º 8
0
        public async Task<string> GetSeriesJsonAsync(string databaseName, ShowSeries command = null)
        {
            ThrowIfDisposed();

            Ensure.That(databaseName, nameof(databaseName)).IsNotNullOrWhiteSpace();

            var request = CreateCommandRequest((command ?? new ShowSeries()).Generate(), databaseName);
            var response = await Requester.SendAsync(request).ForAwait();
            EnsureSuccessfulRead(response);

            return response.Content;
        }
Exemplo n.º 9
0
        public async Task<Series> GetSeriesAsync(string databaseName, ShowSeries command = null)
        {
            ThrowIfDisposed();

            Ensure.That(databaseName, nameof(databaseName)).IsNotNullOrWhiteSpace();

            var result = new Series();

            var json = await GetSeriesJsonAsync(databaseName, command).ForAwait();
            var data = Requester.JsonSerializer.Deserialize<InfluxDbResponse>(json);
            if (data?.Results == null || !data.Results.Any())
                return result;

            foreach (var serie in data.Results.SelectMany(r => r.Series))
            {
                var schema = serie.GetSchemaOrdinals();
                var keyOrdinal = schema[SerieSchema.Key];
                result.Add(serie.Name, serie.Values.Select(value =>
                {
                    var serieItem = new SerieItem
                    {
                        Key = value[keyOrdinal].ToObject<string>()
                    };

                    for (var ci = 0; ci < serie.Columns.Count; ci++)
                    {
                        if (ci == keyOrdinal)
                            continue;

                        serieItem.Tags.Add(serie.Columns[ci], value[ci].ToObject<string>());
                    }

                    return serieItem;
                }).ToArray());
            }

            return result;
        }