< Summary

Class:SVETA.Api.Services.Implements.ImportingExporting.FileReader
Assembly:SVETA.Api
File(s):/opt/dev/sveta_api_build/SVETA.Api/Services/Implements/ImportingExporting/FileReader.cs
Covered lines:0
Uncovered lines:29
Coverable lines:29
Total lines:46
Line coverage:0% (0 of 29)
Covered branches:0
Total branches:12
Branch coverage:0% (0 of 12)

Metrics

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

File(s)

/opt/dev/sveta_api_build/SVETA.Api/Services/Implements/ImportingExporting/FileReader.cs

#LineLine coverage
 1using ExcelDataReader;
 2using Microsoft.AspNetCore.Http;
 3using System;
 4using System.Collections.Generic;
 5using System.Data;
 6using System.IO;
 7using System.Linq;
 8using System.Threading.Tasks;
 9
 10namespace SVETA.Api.Services.Implements.ImportingExporting
 11{
 12    static class FileReader
 13    {
 14        public static DataTable ReadFromExcel(Stream stream, string contentType)
 015        {
 016            System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
 017            var readerConfig = new ExcelReaderConfiguration()
 018            {
 019                AutodetectSeparators = new char[] { ',', ';', '\t', '|', '#' },
 020                AnalyzeInitialCsvRows = 0
 021            };
 022            using (var reader = contentType switch
 023            {
 024                "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" => ExcelReaderFactory.CreateReader(s
 025                "application/vnd.ms-excel" => ExcelReaderFactory.CreateCsvReader(stream, readerConfig),
 026                "text/csv" => ExcelReaderFactory.CreateCsvReader(stream, readerConfig),
 027                _ => throw new NotImplementedException($"File type {contentType} not supported"),
 028            })
 029            {
 030                var conf = new ExcelDataSetConfiguration
 031                {
 032                    ConfigureDataTable = _ => new ExcelDataTableConfiguration
 033                    {
 034                        UseHeaderRow = true,
 035                        ReadHeaderRow = (rowReader) =>
 036                        {
 037                            rowReader.Read(); // пропускаем описание шаблона
 038                            rowReader.Read(); // пропускаем русские колонки
 039                        }
 040                    }
 041                };
 042                return reader.AsDataSet(conf).Tables[0];
 43            }
 044        }
 45    }
 46}

Methods/Properties

ReadFromExcel(...)