Exemple #1
0
        public IScheduleRecord ParseRecord(string recordString)
        {
            if (string.IsNullOrWhiteSpace(recordString))
            {
                throw new ArgumentNullException(nameof(recordString));
            }

            var record = new ScheduleLocationRecord
            {
                RecordIdentity         = ScheduleRecordType.LT,
                Tiploc                 = recordString.Substring(2, 7).Trim(),
                TiplocSuffix           = recordString.Substring(9, 1).Trim(),
                WorkingArrival         = recordString.Substring(10, 5).Trim(),
                PublicArrival          = recordString.Substring(15, 4).Trim(),
                Platform               = recordString.Substring(19, 3).Trim(),
                Path                   = recordString.Substring(22, 3).Trim(),
                LocationActivityString = recordString.Substring(25, 12),
            };

            record.LocationActivity = (LocationActivity)_enumPropertyParsers["LocationActivity"].ParseProperty(record.LocationActivityString);

            record.OrderTime = record.WorkingArrival;

            if (record.PublicArrival == "0000")
            {
                record.PublicArrival = string.Empty;
            }

            if (record.PublicDeparture == "0000")
            {
                record.PublicDeparture = string.Empty;
            }

            return(record);
        }
Exemple #2
0
        public IScheduleRecord ParseRecord(string recordString)
        {
            if (string.IsNullOrWhiteSpace(recordString))
            {
                throw new ArgumentNullException(nameof(recordString));
            }

            var record = new ScheduleLocationRecord
            {
                RecordIdentity         = ScheduleRecordType.LI,
                Tiploc                 = recordString.Substring(2, 7).Trim(),
                TiplocSuffix           = recordString.Substring(9, 1).Trim(),
                WorkingArrival         = recordString.Substring(10, 5).Trim(),
                WorkingDeparture       = recordString.Substring(15, 5).Trim(),
                Pass                   = recordString.Substring(20, 5).Trim(),
                PublicArrival          = recordString.Substring(25, 4).Trim(),
                PublicDeparture        = recordString.Substring(29, 4).Trim(),
                Platform               = recordString.Substring(33, 3).Trim(),
                Line                   = recordString.Substring(36, 3).Trim(),
                Path                   = recordString.Substring(39, 3).Trim(),
                LocationActivityString = recordString.Substring(42, 12),
                EngineeringAllowance   = _timingAllowanceParser.ParseTime(recordString.Substring(54, 2)),
                PathingAllowance       = _timingAllowanceParser.ParseTime(recordString.Substring(56, 2)),
                PerformanceAllowance   = _timingAllowanceParser.ParseTime(recordString.Substring(58, 2))
            };

            record.LocationActivity = (LocationActivity)_enumPropertyParsers["LocationActivity"].ParseProperty(record.LocationActivityString);

            record.OrderTime = !string.IsNullOrWhiteSpace(record.Pass) ? record.Pass : record.WorkingDeparture;

            if (record.PublicArrival == "0000")
            {
                record.PublicArrival = string.Empty;
            }

            if (record.PublicDeparture == "0000")
            {
                record.PublicDeparture = string.Empty;
            }

            return(record);
        }
Exemple #3
0
        public void returns_expected_result()
        {
            var recordParser   = BuildParser();
            var recordToParse  = "LTWSTBRYW 1323 13253     TF                                                     ";
            var expectedResult = new ScheduleLocationRecord
            {
                RecordIdentity         = ScheduleRecordType.LT,
                Tiploc                 = "WSTBRYW",
                WorkingArrival         = "1323",
                PublicArrival          = "1325",
                Platform               = "3",
                LocationActivity       = LocationActivity.TF,
                LocationActivityString = "TF          ",
                OrderTime              = "1323"
            };

            var result = recordParser.ParseRecord(recordToParse);

            Assert.AreEqual(expectedResult, result);
        }
        public void returns_expected_result()
        {
            var recordParser   = BuildParser();
            var recordToParse  = "LOSDON    1242 12422         TB                                                 ";
            var expectedResult = new ScheduleLocationRecord
            {
                RecordIdentity         = ScheduleRecordType.LO,
                Tiploc                 = "SDON",
                WorkingDeparture       = "1242",
                PublicDeparture        = "1242",
                Platform               = "2",
                LocationActivity       = LocationActivity.TB,
                LocationActivityString = "TB          ",
                OrderTime              = "1242"
            };

            var result = recordParser.ParseRecord(recordToParse);

            Assert.AreEqual(expectedResult, result);
        }
        public void returns_expected_result_pass()
        {
            var recordParser   = BuildParser();
            var recordToParse  = "LIBRDFDJN           1314 00000000                                               ";
            var expectedResult = new ScheduleLocationRecord
            {
                RecordIdentity         = ScheduleRecordType.LI,
                Tiploc                 = "BRDFDJN",
                Pass                   = "******",
                OrderTime              = "1314",
                LocationActivityString = "            ",
                PublicArrival          = string.Empty,
                PublicDeparture        = string.Empty,
                WorkingDeparture       = string.Empty,
                WorkingArrival         = string.Empty
            };

            var result = recordParser.ParseRecord(recordToParse);

            Assert.AreEqual(expectedResult, result);
        }
        public void returns_expected_result_arrival_and_departure()
        {
            var recordParser   = BuildParser();
            var recordToParse  = "LIMELKSHM 1307H1308      13081308         T                                     ";
            var expectedResult = new ScheduleLocationRecord
            {
                RecordIdentity         = ScheduleRecordType.LI,
                Tiploc                 = "MELKSHM",
                WorkingArrival         = "1307H",
                PublicArrival          = "1308",
                WorkingDeparture       = "1308",
                PublicDeparture        = "1308",
                LocationActivity       = LocationActivity.T,
                LocationActivityString = "T           ",
                OrderTime              = "1308",
                Pass = string.Empty
            };

            var result = recordParser.ParseRecord(recordToParse);

            Assert.AreEqual(expectedResult, result);
        }