| | | 1 | | using Newtonsoft.Json.Linq; |
| | | 2 | | using OzonDomains; |
| | | 3 | | |
| | | 4 | | namespace Services.ParserServices.HelpDictEnum; |
| | | 5 | | |
| | | 6 | | public class StocksCaster |
| | | 7 | | { |
| | 0 | 8 | | public StocksCaster() |
| | | 9 | | { |
| | | 10 | | |
| | 0 | 11 | | } |
| | | 12 | | public async Task<List<StocksData>> ParseToStocksData(List<JObject> jsonList, string? stockName) |
| | | 13 | | { |
| | 0 | 14 | | var result = jsonList.Select(json => new StocksData |
| | 0 | 15 | | { |
| | 0 | 16 | | Manufacturer = json["Производитель"]?.ToString(), |
| | 0 | 17 | | Article = json["Артикул"]?.ToString(), |
| | 0 | 18 | | Stock = json["Остаток"] != null && int.TryParse(json["Остаток"]?.ToString(), out int stock) ? stock : (int?) |
| | 0 | 19 | | Price = json["Цена"] != null && decimal.TryParse(json["Цена"]?.ToString(), out decimal price) ? price : (dec |
| | 0 | 20 | | Name = json["Наименование"]?.ToString(), |
| | 0 | 21 | | StockName = stockName |
| | 0 | 22 | | }).ToList(); |
| | | 23 | | |
| | 0 | 24 | | return await Task.FromResult(result); |
| | 0 | 25 | | } |
| | | 26 | | |
| | | 27 | | public List<JObject> Search(JArray data, string article) |
| | | 28 | | { |
| | 0 | 29 | | return data |
| | 0 | 30 | | .OfType<JObject>() |
| | 0 | 31 | | .Where(item => |
| | 0 | 32 | | item.TryGetValue("Артикул", out var art) && art.ToString() == article |
| | 0 | 33 | | ) |
| | 0 | 34 | | .ToList(); |
| | | 35 | | } |
| | | 36 | | |
| | | 37 | | } |