< Summary

Information
Class: Services.ParserServices.HelpDictEnum.StocksCaster
Assembly: Services
File(s): /home/runner/work/Studio2Prod/Studio2Prod/AppRepository/ParserServices/StocksCaster.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 19
Coverable lines: 19
Total lines: 37
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 20
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor()100%210%
ParseToStocksData()100%210%
Search(...)0%620%

File(s)

/home/runner/work/Studio2Prod/Studio2Prod/AppRepository/ParserServices/StocksCaster.cs

#LineLine coverage
 1using Newtonsoft.Json.Linq;
 2using OzonDomains;
 3
 4namespace Services.ParserServices.HelpDictEnum;
 5
 6public class StocksCaster
 7{
 08    public StocksCaster()
 9    {
 10
 011    }
 12    public async Task<List<StocksData>> ParseToStocksData(List<JObject> jsonList, string? stockName)
 13    {
 014        var result = jsonList.Select(json => new StocksData
 015        {
 016            Manufacturer = json["Производитель"]?.ToString(),
 017            Article = json["Артикул"]?.ToString(),
 018            Stock = json["Остаток"] != null && int.TryParse(json["Остаток"]?.ToString(), out int stock) ? stock : (int?)
 019            Price = json["Цена"] != null && decimal.TryParse(json["Цена"]?.ToString(), out decimal price) ? price : (dec
 020            Name = json["Наименование"]?.ToString(),
 021            StockName = stockName
 022        }).ToList();
 23
 024        return await Task.FromResult(result);
 025    }
 26
 27    public List<JObject> Search(JArray data, string article)
 28    {
 029        return data
 030            .OfType<JObject>()
 031            .Where(item =>
 032                item.TryGetValue("Артикул", out var art) && art.ToString() == article
 033            )
 034            .ToList();
 35    }
 36
 37}