コード例 #1
0
        public void CreateScheduleEntries()
        {
            // lopp through all data lines looking for header lines which determine a new Schedule Entry
            for (int index = 0; index < _dataLines.Count; index++)
            {
                if (ScheduleEntryLine.IsHeader(_dataLines[index]))
                {
                    int entryStartLineIndex = index;

                    // get the lines of text that constitute a schedule entry and intialise to a new ScheduleEntry
                    ScheduleEntryInitialiser scheduleEntryInitialiser = new ScheduleEntryInitialiser();
                    ScheduleEntry            scheduleEntry            = scheduleEntryInitialiser.Initialise(entryStartLineIndex, _dataLines);

                    // getting EntryText into a fixed column data structure
                    EntryTextColumnBuilder builder = new EntryTextColumnBuilder(_ruleEngine, _whiteSpaceCalculator, _noteExtractor);
                    string[] scheduleEntryColumns  = builder.Build(scheduleEntry.EntryText);

                    // setting relevant properties on Schedule Entry by using colum data
                    ScheduleEntrySetter method = new ScheduleEntrySetter(scheduleEntry);
                    method.Process(_noteExtractor, scheduleEntryColumns);

                    // fast forward the loop to the already known next HEADER line
                    index = scheduleEntryInitialiser.EntryEndLineIndex - 1;

                    // add initialised entry to collection
                    ScheduleEntries.Add(scheduleEntry);
                }
            }
        }
コード例 #2
0
        public void Analyse_DefaultDataColumnRuleEngine_Colums12345_Invalid()
        {
            List <string> lines = new List <string>()
            {
                "1 28.01.2009      Transformer     Chamber (Ground   23.01.2009      EGL551039"
            };

            ScheduleEntry scheduleEntry = new ScheduleEntry
            {
                EntryText = lines
            };

            EntryTextColumnBuilder builder = new EntryTextColumnBuilder(new DefaultDataColumnRuleEngine(), new DefaultWhiteSpaceSizeCalculator(), new DefaultNoteExtractor());

            string[] columns = builder.Build(scheduleEntry.EntryText);

            Assert.IsNull(columns);
            Assert.IsFalse(scheduleEntry.IsValid);
        }
コード例 #3
0
        public void Analyse_DefaultDataColumnRuleEngine_Colums1_Valid()
        {
            List <string> lines = new List <string>()
            {
                "blue (part of)"
            };

            ScheduleEntry scheduleEntry = new ScheduleEntry
            {
                EntryText = lines
            };

            EntryTextColumnBuilder builder = new EntryTextColumnBuilder(new DefaultDataColumnRuleEngine(), new DefaultWhiteSpaceSizeCalculator(), new DefaultNoteExtractor());

            string[] columns = builder.Build(scheduleEntry.EntryText);

            Assert.AreEqual("blue (part of)", columns[0]);
            Assert.AreEqual("", columns[1]);
            Assert.AreEqual("", columns[2]);
            Assert.AreEqual("", columns[3]);
        }
コード例 #4
0
        public void Analyse_DefaultDataColumnRuleEngine_Colums1234_Valid()
        {
            List <string> lines = new List <string>()
            {
                "1 28.01.2009      Transformer Chamber (Ground   23.01.2009      EGL551039"
            };

            ScheduleEntry scheduleEntry = new ScheduleEntry
            {
                EntryText = lines
            };

            EntryTextColumnBuilder builder = new EntryTextColumnBuilder(new DefaultDataColumnRuleEngine(), new DefaultWhiteSpaceSizeCalculator(), new DefaultNoteExtractor());

            string[] columns = builder.Build(scheduleEntry.EntryText);

            Assert.AreEqual("1 28.01.2009", columns[0]);
            Assert.AreEqual("Transformer Chamber (Ground", columns[1]);
            Assert.AreEqual("23.01.2009", columns[2]);
            Assert.AreEqual("EGL551039", columns[3]);
        }