Exemplo n.º 1
0
 public static Func <DayOfWeek, Departure, bool> GetUtilByDayType(DayOffsetType dayOffsetType)
 {
     if (dayOffsetType == DayOffsetType.Yesterday)
     {
         return(GetPreviousDay);
     }
     else if (dayOffsetType == DayOffsetType.Today)
     {
         return(GetTodayDay);
     }
     else
     {
         return(GetFollowingDay);
     }
 }
 public static int GetNumeric(this DayOffsetType dayOffsetType)
 {
     return((int)dayOffsetType);
 }
Exemplo n.º 3
0
        private Departure TryProcessDeparture(List <Agency> agencies, List <CalendarDate> calendarDates, List <Stop> stops, DateTime now, DayOffsetType dayOffset, int toleranceInHours, string id, Departure departure)
        {
            DateTime zonedDateTime     = now.AsZonedDateTime(GetTimezone(agencies, stops, departure));
            DateTime departureDateTime = GetDateTimeFromDeparture(zonedDateTime, dayOffset.GetNumeric(), departure.DepartureTime);
            DateTime targetDateTime    = zonedDateTime.AddDays(dayOffset.GetNumeric());

            if (IsDepartureValid(calendarDates, toleranceInHours, id, WeekdayUtils.GetUtilByDayType(dayOffset), departure, zonedDateTime, departureDateTime, targetDateTime, departure.StartDate, departure.EndDate))
            {
                return(CreateProcessedDeparture(departure, departureDateTime));
            }
            else
            {
                return(null);
            }
        }
Exemplo n.º 4
0
        private List <Departure> GetDeparturesOnDay(List <Agency> agencies, List <CalendarDate> calendarDates, List <Stop> stops, List <Departure> departures, DateTime now, DayOffsetType dayOffset, int toleranceInHours, string id)
        {
            List <Departure> resultForDay = new List <Departure>();

            foreach (Departure departure in departures)
            {
                resultForDay.AddIfNotNull(TryProcessDeparture(agencies, calendarDates, stops, now, dayOffset, toleranceInHours, id, departure));
            }

            return(resultForDay);
        }