1
0

Compare commits

...

2 Commits

Author SHA1 Message Date
5439fcfb75 Fix csv parsing 2025-01-15 15:20:31 +03:00
c1b7be71c9 Fix values duplicate on multiple files 2025-01-15 15:20:16 +03:00
4 changed files with 13 additions and 34 deletions

View File

@ -1,30 +0,0 @@
using CsvHelper.Configuration.Attributes;
namespace RhSolutions.SkuParser.Models;
public class ProductQuantity
{
[Index(0)]
public required Product Product { get; set; }
[Index(1)]
public required double Quantity { get; set; }
public override bool Equals(object? obj)
{
if (obj == null || GetType() != obj.GetType())
{
return false;
}
ProductQuantity other = (ProductQuantity)obj;
return Product == other.Product &&
Quantity == other.Quantity;
}
public override int GetHashCode()
{
HashCode hash = new();
hash.Add(Product);
hash.Add(Quantity);
return hash.ToHashCode();
}
}

View File

@ -0,0 +1,11 @@
using CsvHelper.Configuration.Attributes;
namespace RhSolutions.SkuParser.Models;
public record SkuQuantity
{
[Index(0)]
public required string Sku { get; set; }
[Index(1)]
public required double Quantity { get; set; }
}

View File

@ -8,13 +8,11 @@ namespace RhSolutions.SkuParser.Api.Services;
public class BsExcelParser : ISkuParser
{
private IConfiguration configuration;
// private Dictionary<Product, double> result;
private const int rowsLookupCount = 20;
private const decimal vat = 1.2M;
public BsExcelParser(IConfiguration configuration)
{
this.configuration = configuration;
// result = new();
}
public Dictionary<Product, double> ParseProducts(IFormFile file)

View File

@ -20,7 +20,7 @@ public class CommonCsvParser : ISkuParser
};
using CsvReader csvReader = new(reader, config);
return csvReader.GetRecords<ProductQuantity>()
.ToDictionary(pq => new Product() { Sku = pq.Product.Sku }, pq => pq.Quantity);
return csvReader.GetRecords<SkuQuantity>()
.ToDictionary(pq => new Product() { Sku = pq.Sku }, pq => pq.Quantity);
}
}