aboutsummaryrefslogtreecommitdiff
path: root/RhSolutions.SkuParser.Api/Services/CommonCsvParser.cs
blob: 6dfc0da29c415b6c5bd959af4cdb831816b48911 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
using System.Globalization;
using CsvHelper;
using CsvHelper.Configuration;
using RhSolutions.SkuParser.Abstractions;
using RhSolutions.SkuParser.Models;

namespace RhSolutions.SkuParser.Services;

/// <summary>
/// Парсер артикулов и их количества из файлов *.csv 
/// </summary>
public class CommonCsvParser : ISkuParser
{
	public Dictionary<Product, double> ParseProducts(IFormFile file)
	{
		using StreamReader reader = new(file.OpenReadStream());
		var config = new CsvConfiguration(CultureInfo.GetCultureInfo("ru-RU"))
		{
			HasHeaderRecord = false,
		};
		using CsvReader csvReader = new(reader, config);

		return csvReader.GetRecords<SkuQuantity>()
			.ToDictionary(pq => new Product() { Sku = pq.Sku }, pq => pq.Quantity);
	}
}