Example #1
0
        public static TXCCalendar Build(TXCXmlOperatingProfile operatingProfile, DateTime startDate, DateTime endDate)
        {
            TXCCalendar result = new TXCCalendar()
            {
                Monday                    = false,
                Tuesday                   = false,
                Wednesday                 = false,
                Thursday                  = false,
                Friday                    = false,
                Saturday                  = false,
                Sunday                    = false,
                StartDate                 = startDate,
                EndDate                   = endDate,
                RunningDates              = new List <DateTime>(),
                SupplementRunningDates    = new List <DateTime>(),
                SupplementNonRunningDates = new List <DateTime>()
            };

            if (operatingProfile.RegularDayType.DaysOfWeek != null)
            {
                if (operatingProfile.RegularDayType.DaysOfWeek.MondayToFriday != null)
                {
                    result.Monday    = true;
                    result.Tuesday   = true;
                    result.Wednesday = true;
                    result.Thursday  = true;
                    result.Friday    = true;
                    result.Saturday  = false;
                    result.Sunday    = false;
                }
                else if (operatingProfile.RegularDayType.DaysOfWeek.MondayToSaturday != null)
                {
                    result.Monday    = true;
                    result.Tuesday   = true;
                    result.Wednesday = true;
                    result.Thursday  = true;
                    result.Friday    = true;
                    result.Saturday  = true;
                    result.Sunday    = false;
                }
                else if (operatingProfile.RegularDayType.DaysOfWeek.MondayToSunday != null)
                {
                    result.Monday    = true;
                    result.Tuesday   = true;
                    result.Wednesday = true;
                    result.Thursday  = true;
                    result.Friday    = true;
                    result.Saturday  = true;
                    result.Sunday    = true;
                }
                else if (operatingProfile.RegularDayType.DaysOfWeek.Weekend != null)
                {
                    result.Monday    = false;
                    result.Tuesday   = false;
                    result.Wednesday = false;
                    result.Thursday  = false;
                    result.Friday    = false;
                    result.Saturday  = true;
                    result.Sunday    = true;
                }
                else if (operatingProfile.RegularDayType.DaysOfWeek.NotMonday != null)
                {
                    result.Monday    = false;
                    result.Tuesday   = true;
                    result.Wednesday = true;
                    result.Thursday  = true;
                    result.Friday    = true;
                    result.Saturday  = true;
                    result.Sunday    = true;
                }
                else if (operatingProfile.RegularDayType.DaysOfWeek.NotTuesday != null)
                {
                    result.Monday    = true;
                    result.Tuesday   = false;
                    result.Wednesday = true;
                    result.Thursday  = true;
                    result.Friday    = true;
                    result.Saturday  = true;
                    result.Sunday    = true;
                }
                else if (operatingProfile.RegularDayType.DaysOfWeek.NotWednesday != null)
                {
                    result.Monday    = true;
                    result.Tuesday   = true;
                    result.Wednesday = false;
                    result.Thursday  = true;
                    result.Friday    = true;
                    result.Saturday  = true;
                    result.Sunday    = true;
                }
                else if (operatingProfile.RegularDayType.DaysOfWeek.NotThursday != null)
                {
                    result.Monday    = true;
                    result.Tuesday   = true;
                    result.Wednesday = true;
                    result.Thursday  = false;
                    result.Friday    = true;
                    result.Saturday  = true;
                    result.Sunday    = true;
                }
                else if (operatingProfile.RegularDayType.DaysOfWeek.NotFriday != null)
                {
                    result.Monday    = true;
                    result.Tuesday   = true;
                    result.Wednesday = true;
                    result.Thursday  = true;
                    result.Friday    = false;
                    result.Saturday  = true;
                    result.Sunday    = true;
                }
                else if (operatingProfile.RegularDayType.DaysOfWeek.NotSaturday != null)
                {
                    result.Monday    = true;
                    result.Tuesday   = true;
                    result.Wednesday = true;
                    result.Thursday  = true;
                    result.Friday    = true;
                    result.Saturday  = false;
                    result.Sunday    = true;
                }
                else if (operatingProfile.RegularDayType.DaysOfWeek.NotSunday != null)
                {
                    result.Monday    = true;
                    result.Tuesday   = true;
                    result.Wednesday = true;
                    result.Thursday  = true;
                    result.Friday    = true;
                    result.Saturday  = true;
                    result.Sunday    = false;
                }
                else
                {
                    result.Monday    = operatingProfile.RegularDayType.DaysOfWeek.Monday.ToBool();
                    result.Tuesday   = operatingProfile.RegularDayType.DaysOfWeek.Tuesday.ToBool();
                    result.Wednesday = operatingProfile.RegularDayType.DaysOfWeek.Wednesday.ToBool();
                    result.Thursday  = operatingProfile.RegularDayType.DaysOfWeek.Thursday.ToBool();
                    result.Friday    = operatingProfile.RegularDayType.DaysOfWeek.Friday.ToBool();
                    result.Saturday  = operatingProfile.RegularDayType.DaysOfWeek.Saturday.ToBool();
                    result.Sunday    = operatingProfile.RegularDayType.DaysOfWeek.Sunday.ToBool();
                }
            }

            while (startDate <= endDate)
            {
                if (startDate.DayOfWeek == DayOfWeek.Monday && result.Monday)
                {
                    result.RunningDates.Add(startDate);
                }
                else if (startDate.DayOfWeek == DayOfWeek.Tuesday && result.Tuesday)
                {
                    result.RunningDates.Add(startDate);
                }
                else if (startDate.DayOfWeek == DayOfWeek.Wednesday && result.Wednesday)
                {
                    result.RunningDates.Add(startDate);
                }
                else if (startDate.DayOfWeek == DayOfWeek.Thursday && result.Thursday)
                {
                    result.RunningDates.Add(startDate);
                }
                else if (startDate.DayOfWeek == DayOfWeek.Friday && result.Friday)
                {
                    result.RunningDates.Add(startDate);
                }
                else if (startDate.DayOfWeek == DayOfWeek.Saturday && result.Saturday)
                {
                    result.RunningDates.Add(startDate);
                }
                else if (startDate.DayOfWeek == DayOfWeek.Sunday && result.Sunday)
                {
                    result.RunningDates.Add(startDate);
                }

                startDate = startDate.AddDays(1);
            }

            return(result);
        }
Example #2
0
        public static TXCSchedule Build(TXCXmlOperator @operator, TXCXmlService service, TXCXmlJourneyPattern journeyPattern, TXCCalendar calendar)
        {
            TXCSchedule result = new TXCSchedule()
            {
                Id          = Guid.NewGuid().ToString(),
                Line        = service.Lines.Line.LineName,
                ServiceCode = service.ServiceCode,
                Calendar    = calendar,
                Stops       = new List <TXCStop>()
            };

            if (service.Description != null)
            {
                result.Description = service.Description.Trim();
            }

            if (journeyPattern.Direction == "inbound")
            {
                result.Direction = "1";
            }
            else
            {
                result.Direction = "0";
            }

            if (service.Mode == "bus")
            {
                result.Mode = "3";
            }
            else if (service.Mode == "coach")
            {
                result.Mode = "3";
            }
            else if (service.Mode == "ferry")
            {
                result.Mode = "4";
            }
            else if (service.Mode == "rail")
            {
                if (@operator.OperatorCode == "EAL")
                {
                    result.Mode = "6";
                }
                else
                {
                    result.Mode = "0";
                }
            }
            else if (service.Mode == "tram")
            {
                result.Mode = "0";
            }
            else if (service.Mode == "underground")
            {
                result.Mode = "1";
            }
            else
            {
                result.Mode = "3";
            }

            if (@operator.NationalOperatorCode != null)
            {
                if (@operator.NationalOperatorCode != "")
                {
                    result.OperatorCode = @operator.NationalOperatorCode;
                    result.OperatorName = @operator.OperatorShortName;
                }
                else
                {
                    result.OperatorCode = "ZZZZ";
                    result.OperatorName = "Unknown NOC Operator";
                }
            }
            else
            {
                result.OperatorCode = "ZZZZ";
                result.OperatorName = "Unknown NOC Operator";
            }

            return(result);
        }