39 lines
1.0 KiB
C#
39 lines
1.0 KiB
C#
using System.Xml.Linq;
|
|
using OdooAPI.Services.Helpers;
|
|
|
|
namespace OdooAPI.DataAccess.Xml;
|
|
|
|
public class XmlSupplierReader
|
|
{
|
|
public List<XmlItemDto> ReadFolder(string supplierFolder)
|
|
{
|
|
var result = new List<XmlItemDto>();
|
|
|
|
var files = Directory.GetFiles(supplierFolder, "*.xml");
|
|
|
|
foreach (var file in files)
|
|
{
|
|
result.AddRange(ReadFile(file));
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
private IEnumerable<XmlItemDto> ReadFile(string filePath)
|
|
{
|
|
var doc = XDocument.Load(filePath);
|
|
|
|
foreach (var item in doc.Descendants("item"))
|
|
{
|
|
yield return new XmlItemDto
|
|
{
|
|
VendorId = item.Element("vendor_id")?.Value ?? "",
|
|
Naam = item.Element("long_desc")?.Value ?? "",
|
|
Prijs = DecimalHelper.Parse(item.Element("price")?.Value),
|
|
Stock = int.TryParse(item.Element("stock")?.Value, out var s) ? s : 0,
|
|
Ean = item.Element("EAN_code")?.Value
|
|
};
|
|
}
|
|
}
|
|
}
|