示例#1
0
 /// <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()
     });
 }
示例#2
0
 /// <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()
     });
 }
示例#3
0
        /// <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);
            }
        }