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