< Summary

Class:WinSolutions.Sveta.Server.Data.DataLoading.Parsers.CsvParser`1
Assembly:WinSolutions.Sveta.Server
File(s):/opt/dev/sveta_api_build/WinSolutions.Sveta.Server/Data/DataLoading/Parsers/CsvParser.cs
Covered lines:0
Uncovered lines:23
Coverable lines:23
Total lines:45
Line coverage:0% (0 of 23)
Covered branches:0
Total branches:4
Branch coverage:0% (0 of 4)

Metrics

MethodLine coverage Branch coverage
ReadLines(...)0%0%

File(s)

/opt/dev/sveta_api_build/WinSolutions.Sveta.Server/Data/DataLoading/Parsers/CsvParser.cs

#LineLine coverage
 1using System;
 2using System.Collections.Generic;
 3using System.Globalization;
 4using System.IO;
 5using System.Linq;
 6using System.Reflection;
 7using System.Text;
 8using WinSolutions.Sveta.Server.Data.DataModel.Entities;
 9using WinSolutions.Sveta.Server.Data.DataLoading.Records;
 10using ExcelDataReader;
 11using System.Data;
 12
 13namespace WinSolutions.Sveta.Server.Data.DataLoading.Parsers
 14{
 15    public class CsvParser<T> : BaseParser<T> where T : BaseRecord, new()
 16    {
 17        protected override DataTable ReadLines(Stream stream)
 018        {
 019            System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
 020            var readerConfig = new ExcelReaderConfiguration()
 021            {
 022                AutodetectSeparators = new char[] { ';', '\t', '|' },
 023                AnalyzeInitialCsvRows = 0
 024            };
 25
 026            using (var reader = ExcelReaderFactory.CreateCsvReader(stream, readerConfig))
 027            {
 028                var conf = new ExcelDataSetConfiguration
 029                {
 030                    ConfigureDataTable = _ => new ExcelDataTableConfiguration
 031                    {
 032                        UseHeaderRow = true,
 033                        ReadHeaderRow = (rowReader) =>
 034                        {
 035                            rowReader.Read(); // пропускаем описание шаблона
 036                            rowReader.Read(); // пропускаем русские колонки
 037                        }
 038                    }
 039                };
 40
 041                return reader.AsDataSet(conf).Tables[0];
 42            }
 043        }
 44    }
 45}

Methods/Properties

ReadLines(...)