/// <summary> /// Utworzenie obiektu "EwidencjaSrodkowPienieznych" /// (wskazuje symbol ewidencji, do której zostaną skierowane raportu) /// </summary> private static EwidencjaSrodkowPienieznych ReadEsp(CommaReader commaReader, ExampleFormatReaderInfo info) { return(new EwidencjaSrodkowPienieznych { ReaderInfo = info, Symbol = commaReader.ReadString() }); }
/// <summary> /// Utworzenie obiektu "RaportEsp" /// (w enova powstanie obiekt raportu) /// </summary> private static RaportEsp ReadRaportEsp(CommaReader commaReader, ExampleFormatReaderInfo info) { return(new RaportEsp { ReaderInfo = info, Definicja = commaReader.ReadString(), Data = commaReader.ReadDate(), Numer = commaReader.ReadString() }); }
/// <summary> /// Metoda zwracająca kolejny obiekt ImportItem odczytany z pliku wejściowego /// (tu odbywa się interpretacja poszczególnych wierszy pliku w obsługiwanym formacie) /// </summary> public ImportItem Read() { string lineTxt; // odczytujemy kolejny wiersz wejściowy // (puste wiersze pomijamy) while ((lineTxt = _reader.ReadLine()) == String.Empty) { _lineNumber++; } // wczytanie null oznacza koniec strumienia -> koniec importu if (lineTxt == null) { return(null); } // tworzymy obiekt informacyjny o pozycji w pliku // (numery wierszy zapewniają możliwość sygnalizacji miejsca wystąpienia błędów) var info = new ExampleFormatReaderInfo(++_lineNumber, lineTxt) { SourceInfo = SourceInfo }; try { // comma reader - klasa pomocnicza do czytania formatu CSV var commaReader = new CommaReaderPlus(lineTxt, ';'); // // przekształcamy wiersze wejściowe na obiekty pośrednie // (jeden wiersz = jeden obiekt) // // na pierwszej pozycji mamy zakodowany rodzaj obiektu wg przyjętej przez nas konwencji var type = commaReader.ReadString(); switch (type) { case "ESP": return(ReadEsp(commaReader, info)); case "RAP": return(ReadRaportEsp(commaReader, info)); case "KON": return(ReadKontrahent(commaReader, info)); case "WPL": return(ReadZaplata(commaReader, new Wplata { ReaderInfo = info })); case "WYP": return(ReadZaplata(commaReader, new Wyplata { ReaderInfo = info })); } throw new Exception(string.Format("Nieznany typ wiersza {0}", type)); } catch (Exception ex) { var msg = string.Format("ExampleFormatReader - błąd wczytywania: {0}", info.Info); throw new Exception(msg, ex); } }