public void CreateAllCharts(SignalAggregationMetricOptions options)
 {
     options.SelectedChartType       = SeriesChartType.Column;
     options.SelectedAggregationType = AggregationType.Sum;
     options.CreateMetric();
     options.SelectedAggregationType = AggregationType.Average;
     options.CreateMetric();
     options.SelectedChartType       = SeriesChartType.Line;
     options.SelectedAggregationType = AggregationType.Sum;
     options.CreateMetric();
     options.SelectedAggregationType = AggregationType.Average;
     options.CreateMetric();
     options.SelectedChartType       = SeriesChartType.Pie;
     options.SelectedAggregationType = AggregationType.Sum;
     options.CreateMetric();
     options.SelectedAggregationType = AggregationType.Average;
     options.CreateMetric();
     options.SelectedChartType       = SeriesChartType.StackedColumn;
     options.SelectedAggregationType = AggregationType.Sum;
     options.CreateMetric();
     options.SelectedAggregationType = AggregationType.Average;
     options.CreateMetric();
     options.SelectedChartType       = SeriesChartType.StackedArea;
     options.SelectedAggregationType = AggregationType.Sum;
     options.CreateMetric();
     options.SelectedAggregationType = AggregationType.Average;
     options.CreateMetric();
 }
示例#2
0
        public static Chart TransitSignalPriorityAggregationChart(SignalAggregationMetricOptions options)
        {
            options.MetricTypeID = 24;
            var chart = ChartInitialization(options);

            return(chart);
        }
        protected void SetFilterSignal(SignalAggregationMetricOptions options)
        {
            List <FilterSignal> filterSignals = new List <FilterSignal>();
            var signals = Db.Signals.Take(2);

            foreach (var signal in signals)
            {
                var filterSignal = new FilterSignal {
                    SignalId = signal.SignalID, Exclude = false
                };
                foreach (var approach in signal.Approaches)
                {
                    var filterApproach = new FilterApproach
                    {
                        ApproachId  = approach.ApproachID,
                        Description = String.Empty,
                        Exclude     = false
                    };
                    filterSignal.FilterApproaches.Add(filterApproach);
                    foreach (var detector in approach.Detectors)
                    {
                        filterApproach.FilterDetectors.Add(new FilterDetector
                        {
                            Id          = detector.ID,
                            Description = String.Empty,
                            Exclude     = false
                        });
                    }
                }
                filterSignals.Add(filterSignal);
            }
            options.FilterSignals    = filterSignals;
            options.FilterDirections = new List <FilterDirection>();
            options.FilterDirections.Add(new FilterDirection {
                Description = "", DirectionTypeId = 0, Include = true
            });
            options.FilterDirections.Add(new FilterDirection {
                Description = "", DirectionTypeId = 1, Include = true
            });
            options.FilterDirections.Add(new FilterDirection {
                Description = "", DirectionTypeId = 2, Include = true
            });
            options.FilterDirections.Add(new FilterDirection {
                Description = "", DirectionTypeId = 3, Include = true
            });
            options.FilterMovements = new List <FilterMovement>();
            options.FilterMovements.Add(new FilterMovement {
                Description = "", MovementTypeId = 0, Include = true
            });
            options.FilterMovements.Add(new FilterMovement {
                Description = "", MovementTypeId = 1, Include = true
            });
            options.FilterMovements.Add(new FilterMovement {
                Description = "", MovementTypeId = 2, Include = true
            });
            options.FilterMovements.Add(new FilterMovement {
                Description = "", MovementTypeId = 3, Include = true
            });
        }
示例#4
0
 private static void SetIntY2Axis(ChartArea chartArea, SignalAggregationMetricOptions options)
 {
     chartArea.AxisY2.Enabled           = AxisEnabled.True;
     chartArea.AxisY2.MajorGrid.Enabled = false;
     chartArea.AxisY2.MinorGrid.Enabled = false;
     chartArea.AxisY2.Title             = options.Y2AxisTitle;
     chartArea.AxisY2.Minimum           = 0;
 }
示例#5
0
 private static void SetStringXAxis(ChartArea chartArea, SignalAggregationMetricOptions options)
 {
     chartArea.AxisX.Title             = "Signals";
     chartArea.AxisX.Interval          = 1;
     chartArea.AxisX.LabelAutoFitStyle = LabelAutoFitStyles.None;
     chartArea.AxisX.LabelStyle.Font   = new Font("Microsoft Sans Serif", 12);
     chartArea.AxisX.LabelStyle.Angle  = 45;
 }
示例#6
0
        public static Chart PreemptionAggregationChart(SignalAggregationMetricOptions options)
        {
            options.MetricTypeID = 22;
            var chart = ChartInitialization(options);

            Bins = GetBins(options);
            return(chart);
        }
示例#7
0
        public static Chart CreateApproachDelayAggregationChart(SignalAggregationMetricOptions options)
        {
            options.MetricTypeID = 23;
            var chart = ChartInitialization(options);

            Bins = GetBins(options);
            return(chart);
        }
示例#8
0
        public static Chart CreatePlatoonRatioAggregationChart(SignalAggregationMetricOptions options)
        {
            options.MetricTypeID = 19;
            var chart = ChartInitialization(options);

            Bins = GetBins(options);
            return(chart);
        }
示例#9
0
        public static Chart CreatePedestrianActuationAggregationChart(SignalAggregationMetricOptions options)
        {
            options.MetricTypeID = 21;
            var chart = ChartInitialization(options);

            Bins = GetBins(options);
            return(chart);
        }
示例#10
0
        public static Chart CreateArrivalOnGreenAggregationChart(SignalAggregationMetricOptions options)
        {
            options.MetricTypeID = 18;
            var chart = ChartInitialization(options);

            Bins = GetBins(options);
            return(chart);
        }
示例#11
0
        protected override void LoadBins(SignalAggregationMetricOptions options, Models.Signal signal)
        {
            var signalEventCountAggregationRepository = SignalEventCountAggregationRepositoryFactory
                                                        .Create();
            var signalEventCounts =
                signalEventCountAggregationRepository.GetSignalEventCountAggregationBySignalIdAndDateRange(
                    signal.SignalID, BinsContainers.Min(b => b.Start), BinsContainers.Max(b => b.End));

            if (signalEventCounts != null)
            {
                var concurrentBinContainers = new ConcurrentBag <BinsContainer>();
                //foreach (var binsContainer in binsContainers)
                Parallel.ForEach(BinsContainers, binsContainer =>
                {
                    var tempBinsContainer =
                        new BinsContainer(binsContainer.Start, binsContainer.End);
                    var concurrentBins = new ConcurrentBag <Bin>();
                    //foreach (var bin in binsContainer.Bins)
                    Parallel.ForEach(binsContainer.Bins, bin =>
                    {
                        if (signalEventCounts.Any(s => s.BinStartTime >= bin.Start && s.BinStartTime < bin.End))
                        {
                            var signalEventCountSum = 0;

                            switch (options.SelectedAggregatedDataType.DataName)
                            {
                            case "EventCount":
                                signalEventCountSum = signalEventCounts.Where(s =>
                                                                              s.BinStartTime >= bin.Start && s.BinStartTime < bin.End)
                                                      .Sum(s => s.EventCount);
                                break;
                            }
                            Bin newBin = new Bin
                            {
                                Start   = bin.Start,
                                End     = bin.End,
                                Sum     = signalEventCountSum,
                                Average = signalEventCountSum
                            };
                            concurrentBins.Add(newBin);
                        }
                        else
                        {
                            concurrentBins.Add(new Bin
                            {
                                Start   = bin.Start,
                                End     = bin.End,
                                Sum     = 0,
                                Average = 0
                            });
                        }
                    });
                    tempBinsContainer.Bins = concurrentBins.OrderBy(c => c.Start).ToList();
                    concurrentBinContainers.Add(tempBinsContainer);
                });
                BinsContainers = concurrentBinContainers.OrderBy(b => b.Start).ToList();
            }
        }
示例#12
0
        public static Chart CreateAdvancedCountsAggregationChart(SignalAggregationMetricOptions options)
        {
            options.MetricTypeID = 17;
            var chart = ChartInitialization(options);

            Bins = GetBins(options);

            return(chart);
        }
示例#13
0
 private static void SetUpY2Axis(ChartArea chartArea, SignalAggregationMetricOptions options)
 {
     chartArea.AxisY2.MaximumAutoSize       = 50;
     chartArea.AxisY2.Enabled               = AxisEnabled.True;
     chartArea.AxisY2.MajorTickMark.Enabled = false;
     chartArea.AxisY2.MajorGrid.Enabled     = false;
     chartArea.AxisY2.IntervalType          = DateTimeIntervalType.Number;
     chartArea.AxisY2.Title = options.Y2AxisTitle ?? "";
 }
示例#14
0
        public static Chart CreateStringXIntYChart(SignalAggregationMetricOptions options)
        {
            var chart = new Chart();

            SetImageProperties(chart);
            chart.ChartAreas.Add(CreateStringXIntYChartArea(options));
            SetLegend(chart);
            chart.Titles.Add(options.ChartTitle);
            return(chart);
        }
示例#15
0
        private static ChartArea CreateStringXIntYChartArea(SignalAggregationMetricOptions options)
        {
            var chartArea = new ChartArea();

            chartArea.Name = "ChartArea1";
            SetDimension(options, chartArea);
            SetIntYAxis(chartArea, options);
            SetStringXAxis(chartArea, options);
            return(chartArea);
        }
示例#16
0
 private static void SetDimension(SignalAggregationMetricOptions options, ChartArea chartArea)
 {
     if (options.SelectedDimension == Dimension.ThreeDimensional)
     {
         chartArea.Area3DStyle = new ChartArea3DStyle {
             Enable3D = true, WallWidth = 0
         }
     }
     ;
 }
示例#17
0
 private static void SetIntYAxis(ChartArea chartArea, SignalAggregationMetricOptions options)
 {
     if (options.YAxisMax != null)
     {
         chartArea.AxisY.Maximum = options.YAxisMax.Value;
     }
     else
     {
         chartArea.AxisY.IntervalAutoMode = IntervalAutoMode.VariableCount;
     }
     chartArea.AxisY.Title   = options.YAxisTitle;
     chartArea.AxisY.Minimum = 0;
 }
示例#18
0
        private static ChartArea CreateTimeXIntYChartArea(SignalAggregationMetricOptions options)
        {
            var chartArea = new ChartArea();

            SetDimension(options, chartArea);
            chartArea.Name = "ChartArea1";
            SetIntYAxis(chartArea, options);
            if (options.ShowEventCount)
            {
                SetIntY2Axis(chartArea, options);
            }
            SetTimeXAxis(chartArea, options);
            return(chartArea);
        }
 private ActionResult GetChart(AggDataExportViewModel aggDataExportViewModel, SignalAggregationMetricOptions options)
 {
     Enum.TryParse(aggDataExportViewModel.SelectedChartType, out SeriesChartType tempSeriesChartType);
     options.SelectedChartType = tempSeriesChartType;
     if (TryValidateModel(aggDataExportViewModel) && aggDataExportViewModel.FilterSignals.Count > 0)
     {
         SetCommonValues(aggDataExportViewModel, options);
         return(GetChartFromService(options));
     }
     else
     {
         return(Content("<h1 class='text-danger'>Missing Parameters</h1>"));
     }
 }
示例#20
0
 protected override void LoadBins(SignalAggregationMetricOptions options, Models.Signal signal)
 {
     for (var i = 0; i < BinsContainers.Count; i++)
     {
         for (var binIndex = 0; binIndex < BinsContainers[i].Bins.Count; binIndex++)
         {
             var bin = BinsContainers[i].Bins[binIndex];
             foreach (var approachSplitFailAggregationContainer in ApproachSplitFailures)
             {
                 bin.Sum    += approachSplitFailAggregationContainer.BinsContainers[i].Bins[binIndex].Sum;
                 bin.Average = ApproachSplitFailures.Count > 0 ? bin.Sum / ApproachSplitFailures.Count : 0;
             }
         }
     }
 }
示例#21
0
 protected override void LoadBins(SignalAggregationMetricOptions options, Models.Signal signal)
 {
     for (var i = 0; i < BinsContainers.Count; i++)
     {
         for (var binIndex = 0; binIndex < BinsContainers[i].Bins.Count; binIndex++)
         {
             var bin = BinsContainers[i].Bins[binIndex];
             foreach (var speedAggregationByApproach in ApproachSpeedEvents)
             {
                 bin.Sum += speedAggregationByApproach.BinsContainers[i].Bins[binIndex].Sum;
             }
             bin.Average = ApproachSpeedEvents.Count > 0 ? bin.Sum / ApproachSpeedEvents.Count : 0;
         }
     }
 }
示例#22
0
        public static Chart ChartInitialization(SignalAggregationMetricOptions options)
        {
            var chart = new Chart();

            SetImageProperties(chart);
            ChartArea chartAreaAgg = CreateTimeXIntYChartArea(options);

            chart.ChartAreas.Add(chartAreaAgg);
            chart.Titles.Add(options.ChartTitle);
            if (options.ShowEventCount)
            {
                SetUpY2Axis(chartAreaAgg, options);
            }
            return(chart);
        }
 protected void CreateStackedColumnChart(SignalAggregationMetricOptions options)
 {
     try
     {
         options.SelectedChartType       = SeriesChartType.StackedColumn;
         options.SelectedAggregationType = AggregationType.Sum;
         options.CreateMetric();
         //options.SelectedAggregationType = AggregationType.Average;
         //options.CreateMetric();
     }
     catch (Exception e)
     {
         Console.WriteLine(e);
         throw;
     }
 }
示例#24
0
        //public static Chart CreateSplitMonitorChart(SplitMonitorOptions options)
        //{
        //    var chart = new Chart();
        //    SetImageProperties(chart);
        //    chart.ChartAreas.Add(CreateSplitMonitorChartArea(options));
        //    SetLegend(chart);
        //    return chart;
        //}

        //private static ChartArea CreateSplitMonitorChartArea(SplitMonitorOptions options)
        //{
        //    var chartArea = new ChartArea();
        //    chartArea.Name = "ChartArea1";
        //    SetUpXAxis(chartArea, options);
        //    SetUpX2Axis(chartArea, options);
        //    return chartArea;
        //}

        public static Chart CreateTimeXIntYChart(SignalAggregationMetricOptions options, List <Models.Signal> signals)
        {
            var chart = new Chart();

            SetImageProperties(chart);
            chart.ChartAreas.Add(CreateTimeXIntYChartArea(options));
            SetLegend(chart);
            var signalDescriptions = string.Empty;

            foreach (var signal in signals)
            {
                signalDescriptions += signal.SignalDescription + ",";
            }
            signalDescriptions = signalDescriptions.TrimEnd(',');
            chart.Titles.Add(signalDescriptions + "\n" + options.ChartTitle);
            return(chart);
        }
 private ActionResult GetChartFromService(SignalAggregationMetricOptions options)
 {
     Models.MetricAndXmlResultViewModel           result = new Models.MetricAndXmlResultViewModel();
     MetricGeneratorService.MetricGeneratorClient client =
         new MetricGeneratorService.MetricGeneratorClient();
     try
     {
         client.Open();
         var resultPaths = client.GetChartAndXmlFileLocations(options);
         client.Close();
         result.ChartPaths = resultPaths.ToList();
         return(PartialView("~/Views/AggregateDataExport/MetricResult.cshtml", result));
     }
     catch (Exception ex)
     {
         client.Close();
         return(Content("<h1>" + ex.Message + "</h1>"));
     }
 }
示例#26
0
        public static List <Bin> GetBins(SignalAggregationMetricOptions options)
        {
            var bins = new List <Bin>();

            var timeX = new DateTime();

            timeX = options.StartDate;

            while (timeX <= options.EndDate)
            {
                var bin = new Bin();

                bin.Start = timeX;

                //timeX = timeX.AddMinutes(options.BinSize);

                bin.End = timeX;

                bins.Add(bin);
            }

            return(bins);
        }
        public virtual void CreateTimeMetricStartToFinishAllBinSizesAllAggregateDataTypesTest(SignalAggregationMetricOptions options)
        {
            AddValidValuestoLists();
            SetOptionDefaults(options);

            foreach (var xAxisType in Enum.GetValues(typeof(XAxisType)).Cast <XAxisType>().ToList())
            {
                options.SelectedXAxisType = xAxisType;
                foreach (var seriesType in Enum.GetValues(typeof(SeriesType)).Cast <SeriesType>().ToList())
                {
                    options.SelectedSeries = seriesType;
                    foreach (var tempBinSize in Enum.GetValues(typeof(BinFactoryOptions.BinSize))
                             .Cast <BinFactoryOptions.BinSize>().ToList())
                    {
                        SetTimeOptionsBasedOnBinSize(options, tempBinSize);
                        options.TimeOptions.SelectedBinSize = tempBinSize;
                        foreach (var aggregatedDataType in options.AggregatedDataTypes)
                        {
                            options.SelectedAggregatedDataType = aggregatedDataType;
                            try
                            {
                                if (IsValidCombination(options))
                                {
                                    CreateStackedColumnChart(options);
                                    Assert.IsTrue(options.ReturnList.Count == 1);
                                }
                            }
                            catch (InvalidBinSizeException e)
                            {
                                Debug.WriteLine(e.Message);
                            }
                            options.ReturnList = new List <string>();
                        }
                    }
                }
            }
        }
 private static void SetTimeOptionsBasedOnBinSize(SignalAggregationMetricOptions options,
                                                  BinFactoryOptions.BinSize binSize)
 {
     if (binSize == BinFactoryOptions.BinSize.Day)
     {
         options.StartDate   = Convert.ToDateTime("10/1/2017");
         options.EndDate     = Convert.ToDateTime("11/1/2017");
         options.TimeOptions = new BinFactoryOptions(
             Convert.ToDateTime("10/1/2017"),
             Convert.ToDateTime("11/1/2017"),
             null, null, null, null,
             new List <DayOfWeek>
         {
             DayOfWeek.Monday,
             DayOfWeek.Tuesday,
             DayOfWeek.Wednesday,
             DayOfWeek.Thursday,
             DayOfWeek.Friday,
             DayOfWeek.Saturday,
             DayOfWeek.Sunday
         },
             BinFactoryOptions.BinSize.FifteenMinute,
             BinFactoryOptions.TimeOptions.StartToEnd);
     }
     else if (binSize == BinFactoryOptions.BinSize.Month)
     {
         options.StartDate   = Convert.ToDateTime("1/1/2017");
         options.EndDate     = Convert.ToDateTime("1/1/2018");
         options.TimeOptions = new BinFactoryOptions(
             Convert.ToDateTime("1/1/2017"),
             Convert.ToDateTime("1/1/2018"),
             null, null, null, null,
             new List <DayOfWeek>
         {
             DayOfWeek.Monday,
             DayOfWeek.Tuesday,
             DayOfWeek.Wednesday,
             DayOfWeek.Thursday,
             DayOfWeek.Friday,
             DayOfWeek.Saturday,
             DayOfWeek.Sunday
         },
             BinFactoryOptions.BinSize.FifteenMinute,
             BinFactoryOptions.TimeOptions.StartToEnd);
     }
     else if (binSize == BinFactoryOptions.BinSize.Year)
     {
         options.StartDate   = Convert.ToDateTime("1/1/2016");
         options.EndDate     = Convert.ToDateTime("1/1/2018");
         options.TimeOptions = new BinFactoryOptions(
             Convert.ToDateTime("1/1/2016"),
             Convert.ToDateTime("1/1/2018"),
             null, null, null, null,
             new List <DayOfWeek>
         {
             DayOfWeek.Monday,
             DayOfWeek.Tuesday,
             DayOfWeek.Wednesday,
             DayOfWeek.Thursday,
             DayOfWeek.Friday,
             DayOfWeek.Saturday,
             DayOfWeek.Sunday
         },
             BinFactoryOptions.BinSize.FifteenMinute,
             BinFactoryOptions.TimeOptions.StartToEnd);
     }
     else
     {
         options.StartDate   = Convert.ToDateTime("10/17/2017");
         options.EndDate     = Convert.ToDateTime("10/18/2017");
         options.TimeOptions = new BinFactoryOptions(
             Convert.ToDateTime("10/17/2017"),
             Convert.ToDateTime("10/18/2017"),
             null, null, null, null,
             new List <DayOfWeek>
         {
             DayOfWeek.Monday,
             DayOfWeek.Tuesday,
             DayOfWeek.Wednesday,
             DayOfWeek.Thursday,
             DayOfWeek.Friday,
             DayOfWeek.Saturday,
             DayOfWeek.Sunday
         },
             BinFactoryOptions.BinSize.FifteenMinute,
             BinFactoryOptions.TimeOptions.StartToEnd);
     }
     if (options.SelectedXAxisType == XAxisType.TimeOfDay)
     {
         options.TimeOptions.TimeOfDayStartHour   = 7;
         options.TimeOptions.TimeOfDayStartMinute = 0;
         options.TimeOptions.TimeOfDayEndHour     = 10;
         options.TimeOptions.TimeOfDayStartHour   = 0;
     }
 }
示例#29
0
        private static void SetTimeXAxis(ChartArea chartArea, SignalAggregationMetricOptions options)
        {
            //var reportTimespan = options.EndDate - options.StartDate;
            chartArea.AxisX.Title = "Time (Hour of Day)";
            chartArea.AxisX.LabelStyle.IsEndLabelVisible = false;
            chartArea.AxisX.Interval = 1;
            if (options.SelectedXAxisType == XAxisType.TimeOfDay)
            {
                switch (options.TimeOptions.SelectedBinSize)
                {
                case BinFactoryOptions.BinSize.Year:
                {
                    chartArea.AxisX.IntervalType      = DateTimeIntervalType.Years;
                    chartArea.AxisX.LabelStyle.Format = "yyyy";
                    chartArea.AxisX.Title             = "Day of Month";
                    chartArea.AxisX.Minimum           = options.TimeOptions.Start.AddYears(-1).ToOADate();
                    chartArea.AxisX.Maximum           = options.TimeOptions.End.AddYears(1).ToOADate();
                    break;
                }

                case BinFactoryOptions.BinSize.Month:
                {
                    chartArea.AxisX.IntervalType      = DateTimeIntervalType.Months;
                    chartArea.AxisX.LabelStyle.Format = "MM/yy";
                    chartArea.AxisX.Title             = "Day of Month";
                    chartArea.AxisX.Minimum           = options.TimeOptions.Start.AddMonths(-1).ToOADate();
                    chartArea.AxisX.Maximum           = options.TimeOptions.End.AddMonths(1).ToOADate();
                    break;
                }

                case BinFactoryOptions.BinSize.Day:
                {
                    chartArea.AxisX.IntervalType      = DateTimeIntervalType.Days;
                    chartArea.AxisX.LabelStyle.Format = "MM/dd/yy";
                    chartArea.AxisX.Title             = "Day of Month";
                    chartArea.AxisX.Minimum           = options.TimeOptions.Start.AddDays(-1).ToOADate();
                    chartArea.AxisX.Maximum           = options.TimeOptions.End.AddDays(1).ToOADate();
                    break;
                }

                default:
                {
                    chartArea.AxisX.IntervalType      = DateTimeIntervalType.Hours;
                    chartArea.AxisX.LabelStyle.Format = "HH";
                    chartArea.AxisX.Minimum           = options.TimeOptions.Start.AddHours(-1).ToOADate();
                    chartArea.AxisX.Maximum           = new DateTime(options.TimeOptions.Start.Year,
                                                                     options.TimeOptions.Start.Month, options.TimeOptions.Start.Day,
                                                                     options.TimeOptions.TimeOfDayEndHour.Value,
                                                                     options.TimeOptions.TimeOfDayEndMinute.Value, 0)
                                                        .AddHours(1).ToOADate();
                    break;
                }
                }
            }
            else
            {
                switch (options.TimeOptions.SelectedBinSize)
                {
                case BinFactoryOptions.BinSize.FifteenMinute:
                    chartArea.AxisX.IntervalType      = DateTimeIntervalType.Hours;
                    chartArea.AxisX.LabelStyle.Format = "HH:mm";
                    chartArea.AxisX.Minimum           = options.TimeOptions.Start.AddMinutes(-15).ToOADate();
                    chartArea.AxisX.Maximum           = options.TimeOptions.End.AddMinutes(15).ToOADate();
                    break;

                case BinFactoryOptions.BinSize.ThirtyMinute:
                    chartArea.AxisX.IntervalType      = DateTimeIntervalType.Hours;
                    chartArea.AxisX.LabelStyle.Format = "HH:mm";
                    chartArea.AxisX.Minimum           = options.TimeOptions.Start.AddMinutes(-30).ToOADate();
                    chartArea.AxisX.Maximum           = options.TimeOptions.End.AddMinutes(30).ToOADate();
                    break;

                case BinFactoryOptions.BinSize.Hour:
                    chartArea.AxisX.IntervalType      = DateTimeIntervalType.Hours;
                    chartArea.AxisX.LabelStyle.Format = "HH";
                    chartArea.AxisX.Minimum           = options.TimeOptions.Start.AddHours(-1).ToOADate();
                    chartArea.AxisX.Maximum           = options.TimeOptions.End.AddHours(1).ToOADate();
                    break;

                case BinFactoryOptions.BinSize.Day:
                    chartArea.AxisX.IntervalType      = DateTimeIntervalType.Days;
                    chartArea.AxisX.LabelStyle.Format = "MM/dd/yy";
                    chartArea.AxisX.Title             = "Day of Month";
                    chartArea.AxisX.Minimum           = options.TimeOptions.Start.AddDays(-1).ToOADate();
                    chartArea.AxisX.Maximum           = options.TimeOptions.End.AddDays(1).ToOADate();
                    break;

                //case BinFactoryOptions.BinSize.Week:
                //    chartArea.AxisX.IntervalType = DateTimeIntervalType.Weeks;
                //    chartArea.AxisX.LabelStyle.Format = "";
                //    chartArea.AxisX.Title = "Start of Week";
                //    chartArea.AxisX.Minimum = options.StartDate.AddDays(-7).ToOADate();
                //    break;
                case BinFactoryOptions.BinSize.Month:
                    chartArea.AxisX.MinorTickMark.Enabled = true;
                    chartArea.AxisX.MajorTickMark.Enabled = true;
                    chartArea.AxisX.IntervalType          = DateTimeIntervalType.Months;
                    chartArea.AxisX.Interval                = 1;
                    chartArea.AxisX.LabelStyle.Enabled      = true;
                    chartArea.AxisX.LabelStyle.Angle        = 45;
                    chartArea.AxisX.LabelStyle.IntervalType = DateTimeIntervalType.Months;
                    chartArea.AxisX.LabelStyle.Interval     = 1;
                    chartArea.AxisX.Title              = "Month and Year";
                    chartArea.AxisX.Minimum            = options.TimeOptions.Start.AddMonths(-1).ToOADate();
                    chartArea.AxisX.Maximum            = options.TimeOptions.End.AddMonths(1).ToOADate();
                    chartArea.AxisX.LabelAutoFitStyle  = LabelAutoFitStyles.DecreaseFont;
                    chartArea.AxisX.LabelStyle.Enabled = true;
                    break;

                case BinFactoryOptions.BinSize.Year:
                    chartArea.AxisX.IntervalType      = DateTimeIntervalType.Years;
                    chartArea.AxisX.LabelStyle.Format = "yyyy";
                    chartArea.AxisX.Title             = "Year";
                    chartArea.AxisX.Minimum           = options.TimeOptions.Start.AddYears(-1).ToOADate();
                    chartArea.AxisX.Maximum           = options.TimeOptions.End.AddYears(1).ToOADate();
                    break;

                default:
                    chartArea.AxisX.IntervalType      = DateTimeIntervalType.Days;
                    chartArea.AxisX.LabelStyle.Format = "MM/dd/yy";
                    break;
                }

                if (options.TimeOptions.TimeOption == BinFactoryOptions.TimeOptions.TimePeriod &&
                    (options.TimeOptions.SelectedBinSize == BinFactoryOptions.BinSize.FifteenMinute ||
                     options.TimeOptions.SelectedBinSize == BinFactoryOptions.BinSize.ThirtyMinute ||
                     options.TimeOptions.SelectedBinSize == BinFactoryOptions.BinSize.Hour))
                {
                    var tempStart = new DateTime(options.TimeOptions.Start.Year, options.TimeOptions.Start.Month,
                                                 options.TimeOptions.Start.Day, options.TimeOptions.TimeOfDayStartHour ?? 0,
                                                 options.TimeOptions.TimeOfDayStartMinute ?? 0, 0);
                    var tempEnd = new DateTime(options.TimeOptions.Start.Year, options.TimeOptions.Start.Month,
                                               options.TimeOptions.Start.Day, options.TimeOptions.TimeOfDayEndHour ?? 0,
                                               options.TimeOptions.TimeOfDayEndMinute ?? 0, 0);
                    chartArea.AxisX.Minimum = tempStart.AddMinutes(-15).ToOADate();
                    chartArea.AxisX.Maximum = tempEnd.ToOADate();
                }
            }
        }
示例#30
0
        public static List <ApproachSplitFailAggregation> GetApproachAggregationRecords(Approach approach,
                                                                                        SignalAggregationMetricOptions options)
        {
            var Repo = ApproachSplitFailAggregationRepositoryFactory.Create();

            if (approach != null)
            {
                //List<ApproachSplitFailAggregation> aggregations =
                //    Repo.GetApproachSplitFailAggregationByApproachIdAndDateRange(
                //        approach.ApproachID, options.StartDate, options.EndDate);
                //return aggregations;
            }
            return(null);
        }