public ActionResult GetSignal(string id) { var signalRepository = MOE.Common.Models.Repositories.SignalsRepositoryFactory.Create(); AggDataExportViewModel aggDataExportViewModel = new AggDataExportViewModel(); var signal = signalRepository.GetLatestVersionOfSignalBySignalID(id); aggDataExportViewModel.FilterSignals.Add(GetFilterSignal(signal)); return(PartialView("GetRouteSignals", aggDataExportViewModel)); }
private static void SetTimeOptionsFromViewModel(AggDataExportViewModel aggDataExportViewModel, SignalAggregationMetricOptions options) { string[] startTime; string[] endTime; int? startHour = null; int? startMinute = null; int? endHour = null; int? endMinute = null; BinFactoryOptions.TimeOptions timeOptions = BinFactoryOptions.TimeOptions.StartToEnd; if (!String.IsNullOrEmpty(aggDataExportViewModel.StartTime) && !String.IsNullOrEmpty(aggDataExportViewModel.EndTime)) { startTime = aggDataExportViewModel.StartTime.Split(':'); startHour = Convert.ToInt32(startTime[0]); if (aggDataExportViewModel.SelectedStartAMPM.Contains("PM")) { startHour += 12; } startMinute = startTime.Length > 1 ? Convert.ToInt32(startTime[1]) : 0; endTime = aggDataExportViewModel.EndTime.Split(':'); endHour = Convert.ToInt32(endTime[0]); if (aggDataExportViewModel.SelectedEndAMPM.Contains("PM")) { endHour += 12; } endMinute = endTime.Length > 1 ? Convert.ToInt32(endTime[1]) : 0; timeOptions = BinFactoryOptions.TimeOptions.TimePeriod; } List <DayOfWeek> daysOfWeek = new List <DayOfWeek>(); if (aggDataExportViewModel.Weekends) { daysOfWeek.AddRange(new List <DayOfWeek> { DayOfWeek.Sunday, DayOfWeek.Saturday }); } if (aggDataExportViewModel.Weekdays) { daysOfWeek.AddRange(new List <DayOfWeek> { DayOfWeek.Monday, DayOfWeek.Tuesday, DayOfWeek.Wednesday, DayOfWeek.Thursday, DayOfWeek.Friday }); } BinFactoryOptions.BinSize binSize = (BinFactoryOptions.BinSize)aggDataExportViewModel.SelectedBinSize; options.TimeOptions = new BinFactoryOptions( aggDataExportViewModel.StartDateDay.Value, aggDataExportViewModel.EndDateDay.Value, startHour, startMinute, endHour, endMinute, daysOfWeek, binSize, timeOptions); }
// GET: DataExportViewModels public ActionResult Index() { AggDataExportViewModel viewModel = new AggDataExportViewModel(); viewModel.SelectedMetricTypeId = 20; SetAggregateDataViewModelLists(viewModel); viewModel.SelectedChartType = SeriesChartType.StackedColumn.ToString(); viewModel.SelectedBinSize = 0; viewModel.StartDateDay = Convert.ToDateTime("10/17/2017"); viewModel.EndDateDay = Convert.ToDateTime("10/18/2017"); viewModel.Weekdays = true; viewModel.Weekends = true; return(View(viewModel)); }
// GET: DataExportViewModels public ActionResult GetRouteSignals(int id) { AggDataExportViewModel aggDataExportViewModel = new AggDataExportViewModel(); var routeRepository = MOE.Common.Models.Repositories.RouteRepositoryFactory.Create(); var signalRepository = MOE.Common.Models.Repositories.SignalsRepositoryFactory.Create(); Route route = routeRepository.GetRouteByID(id); foreach (var routeignal in route.RouteSignals) { var signal = signalRepository.GetLatestVersionOfSignalBySignalID(routeignal.SignalId); aggDataExportViewModel.FilterSignals.Add(GetFilterSignal(signal)); } return(PartialView(aggDataExportViewModel)); }
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>")); } }
private void SetAggregateDataViewModelLists(AggDataExportViewModel viewModel) { var routeRepository = MOE.Common.Models.Repositories.RouteRepositoryFactory.Create(); viewModel.SetSeriesTypes(); viewModel.SetAggregationTypes(); viewModel.SetBinSizeList(); viewModel.SetChartTypes(); viewModel.SetDefaultDates(); viewModel.SetDimensions(); viewModel.SetSeriesWidth(); viewModel.SetXAxisTypes(); viewModel.SetDirectionTypes(); viewModel.SetMovementTypes(); viewModel.SetAggregateData(); viewModel.Routes = routeRepository.GetAllRoutes(); viewModel.MetricTypes = metricTyperepository.GetAllToAggregateMetrics(); }
public ActionResult CreateMetric(AggDataExportViewModel aggDataExportViewModel) { switch (aggDataExportViewModel.SelectedMetricTypeId) { case 16: return(GetLaneByLaneChart(aggDataExportViewModel)); case 25: return(GetApproachSpeedAggregationChart(aggDataExportViewModel)); case 18: return(GetArrivalOnGreenChart(aggDataExportViewModel)); case 19: return(GetCycleChart(aggDataExportViewModel)); case 20: return(GetSplitFailChart(aggDataExportViewModel)); case 26: return(GetYraChart(aggDataExportViewModel)); case 22: return(GetPreemptionChart(aggDataExportViewModel)); case 24: return(GetPriorityChart(aggDataExportViewModel)); case 27: return(GetSignalEventCountChart(aggDataExportViewModel)); case 28: return(GetApproachEventCountChart(aggDataExportViewModel)); case 29: return(GetPhaseTerminationChart(aggDataExportViewModel)); case 30: return(GetPhasePedChart(aggDataExportViewModel)); default: return(Content("<h1 class='text-danger'>Unkown Chart Type</h1>")); } }
private static void SetCommonValues(AggDataExportViewModel aggDataExportViewModel, SignalAggregationMetricOptions options) { aggDataExportViewModel.EndDateDay = aggDataExportViewModel.EndDateDay.Value.AddDays(1); options.StartDate = aggDataExportViewModel.StartDateDay.Value; options.EndDate = aggDataExportViewModel.EndDateDay.Value; options.SelectedAggregationType = aggDataExportViewModel.SelectedAggregationType.Value; options.SelectedXAxisType = aggDataExportViewModel.SelectedXAxisType.Value; options.SeriesWidth = aggDataExportViewModel.SelectedSeriesWidth; options.SelectedSeries = aggDataExportViewModel.SelectedSeriesType.Value; options.SelectedDimension = aggDataExportViewModel.SelectedDimension; SetTimeOptionsFromViewModel(aggDataExportViewModel, options); options.FilterSignals = aggDataExportViewModel.FilterSignals; options.FilterMovements = aggDataExportViewModel.FilterMovements; options.FilterDirections = aggDataExportViewModel.FilterDirections; options.SelectedAggregatedDataType = options.AggregatedDataTypes.FirstOrDefault(a => a.Id == aggDataExportViewModel.SelectedAggregatedData); options.ShowEventCount = aggDataExportViewModel.ShowEventCount; }
private ActionResult GetArrivalOnGreenChart(AggDataExportViewModel aggDataExportViewModel) { ApproachPcdAggregationOptions options = new ApproachPcdAggregationOptions(); return(GetChart(aggDataExportViewModel, options)); }
private ActionResult GetLaneByLaneChart(AggDataExportViewModel aggDataExportViewModel) { DetectorVolumeAggregationOptions options = new DetectorVolumeAggregationOptions(); return(GetChart(aggDataExportViewModel, options)); }
private ActionResult GetApproachEventCountChart(AggDataExportViewModel aggDataExportViewModel) { ApproachEventCountAggregationOptions options = new ApproachEventCountAggregationOptions(); return(GetChart(aggDataExportViewModel, options)); }
private ActionResult GetSignalEventCountChart(AggDataExportViewModel aggDataExportViewModel) { SignalEventCountAggregationOptions options = new SignalEventCountAggregationOptions(); return(GetChart(aggDataExportViewModel, options)); }
private ActionResult GetSplitFailChart(AggDataExportViewModel aggDataExportViewModel) { ApproachSplitFailAggregationOptions options = new ApproachSplitFailAggregationOptions(); return(GetChart(aggDataExportViewModel, options)); }
private ActionResult GetPreemptionChart(AggDataExportViewModel aggDataExportViewModel) { SignalPreemptionAggregationOptions options = new SignalPreemptionAggregationOptions(); return(GetChart(aggDataExportViewModel, options)); }
private ActionResult GetPhaseTerminationChart(AggDataExportViewModel aggDataExportViewModel) { PhaseTerminationAggregationOptions options = new PhaseTerminationAggregationOptions(); return(GetChart(aggDataExportViewModel, options)); }
private ActionResult GetYraChart(AggDataExportViewModel aggDataExportViewModel) { ApproachYellowRedActivationsAggregationOptions options = new ApproachYellowRedActivationsAggregationOptions(); return(GetChart(aggDataExportViewModel, options)); }
private static void SetTimeOptionsFromViewModel(AggDataExportViewModel aggDataExportViewModel, SignalAggregationMetricOptions options) { string[] startTime; string[] endTime; int? startHour = null; int? startMinute = null; int? endHour = null; int? endMinute = null; BinFactoryOptions.TimeOptions timeOptions = BinFactoryOptions.TimeOptions.StartToEnd; if (!String.IsNullOrEmpty(aggDataExportViewModel.StartTime) && !String.IsNullOrEmpty(aggDataExportViewModel.EndTime)) { startTime = aggDataExportViewModel.StartTime.Split(':'); startHour = Convert.ToInt32(startTime[0]); if (startHour == 12 && aggDataExportViewModel.SelectedStartAMPM.Contains("AM")) { startHour = 0; } if (aggDataExportViewModel.SelectedStartAMPM.Contains("PM")) { startHour += 12; } startMinute = startTime.Length > 1 ? Convert.ToInt32(startTime[1]) : 0; endTime = aggDataExportViewModel.EndTime.Split(':'); endHour = Convert.ToInt32(endTime[0]); if (endHour == 12 && aggDataExportViewModel.SelectedEndAMPM.Contains("AM")) { endHour = 0; } if (aggDataExportViewModel.SelectedEndAMPM.Contains("PM") && endHour < 12) { endHour += 12; } endMinute = endTime.Length > 1 ? Convert.ToInt32(endTime[1]) : 0; //timeOptions = BinFactoryOptions.TimeOptions.TimePeriod; aggDataExportViewModel.StartDateDay = aggDataExportViewModel.StartDateDay.Value .AddHours(startHour.Value).AddMinutes(startMinute.Value); aggDataExportViewModel.EndDateDay = aggDataExportViewModel.EndDateDay.Value .AddHours(endHour.Value).AddMinutes(endMinute.Value); } else { startHour = 0; startMinute = 0; endHour = 23; endMinute = 59; aggDataExportViewModel.EndDateDay = aggDataExportViewModel.EndDateDay.Value .AddHours(23).AddMinutes(59); } List <DayOfWeek> daysOfWeek = new List <DayOfWeek>(); if (aggDataExportViewModel.Weekends) { daysOfWeek.AddRange(new List <DayOfWeek> { DayOfWeek.Sunday, DayOfWeek.Saturday }); } if (aggDataExportViewModel.Weekdays) { daysOfWeek.AddRange(new List <DayOfWeek> { DayOfWeek.Monday, DayOfWeek.Tuesday, DayOfWeek.Wednesday, DayOfWeek.Thursday, DayOfWeek.Friday }); } BinFactoryOptions.BinSize binSize = (BinFactoryOptions.BinSize)aggDataExportViewModel.SelectedBinSize; switch (aggDataExportViewModel.SelectedXAxisType) { case XAxisType.Time: { timeOptions = BinFactoryOptions.TimeOptions.StartToEnd; break; } case XAxisType.TimeOfDay: { timeOptions = BinFactoryOptions.TimeOptions.TimePeriod; break; } default: { timeOptions = BinFactoryOptions.TimeOptions.StartToEnd; break; } } options.TimeOptions = new BinFactoryOptions( aggDataExportViewModel.StartDateDay.Value, aggDataExportViewModel.EndDateDay.Value, startHour, startMinute, endHour, endMinute, daysOfWeek, binSize, timeOptions); }