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);
        }
 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;
     }
 }
        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);
        }