< Summary

Information
Class: OzonOrdersWeb.Areas.Studio2.Controllers.OrderDetailsController
Assembly: OzonOrdersWeb
File(s): /home/runner/work/Studio2Prod/Studio2Prod/OzonOrdersWeb/Areas/Studio2/Controllers/OrderDetailsController.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 31
Coverable lines: 31
Total lines: 76
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 14
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%
OrderDetailedInformation(...)100%210%
OrderDetailedInformationForBitrix(...)100%210%
OrderSubstitute()0%110100%
OrderStocks()0%2040%

File(s)

/home/runner/work/Studio2Prod/Studio2Prod/OzonOrdersWeb/Areas/Studio2/Controllers/OrderDetailsController.cs

#LineLine coverage
 1using Microsoft.AspNetCore.Authorization;
 2using Microsoft.AspNetCore.Mvc;
 3using OzonDomains.TecDocModels.Substitute;
 4using Services.ApiServices.TecDocApi;
 5using Services.DataServices;
 6using Services.ParserServices;
 7
 8namespace OzonOrdersWeb.Areas.Studio2.Controllers
 9{
 10    [Authorize(Roles = "User,Admin")]
 11    [Area("Studio2")]
 12    [Route("Studio2/Orders")]
 13    public class OrderDetailsController : Controller
 14    {
 15        private readonly OrdersDataServices _orderServices;
 16        private readonly EtProducerDataServices _etProducerDataServices;
 17        private readonly TecDocDataManager _tecDocDataManager;
 18        private readonly SubstituteResultCaster _substituteResultCaster;
 19        private readonly StockDataService _stockDataService;
 20
 021        public OrderDetailsController(
 022            OrdersDataServices orderServices,
 023            EtProducerDataServices etProducerDataServices,
 024            TecDocDataManager tecDocDataManager,
 025            SubstituteResultCaster substituteResultCaster,
 026            StockDataService stockDataService)
 27        {
 028            _orderServices = orderServices;
 029            _etProducerDataServices = etProducerDataServices;
 030            _tecDocDataManager = tecDocDataManager;
 031            _substituteResultCaster = substituteResultCaster;
 032            _stockDataService = stockDataService;
 033        }
 34
 35        [HttpGet]
 36        [Route("OrderDetailedInformation")]
 37        public IActionResult OrderDetailedInformation(int orderId)
 038            => StatusCode(StatusCodes.Status410Gone, "PartsInfo functionality was removed.");
 39
 40        [HttpGet]
 41        [Route("OrderDetailedInformationForBitrix")]
 42        public IActionResult OrderDetailedInformationForBitrix(string article, string producer)
 043            => StatusCode(StatusCodes.Status410Gone, "PartsInfo functionality was removed.");
 44
 45        [HttpGet]
 46        [Route("OrderSubstitute")]
 47        public async Task<IActionResult> OrderSubstitute(int orderId)
 48        {
 049            var order = await _orderServices.GetOrder(orderId);
 050            if (order?.Article == null)
 051                return NotFound();
 52
 053            var result = new List<SubstituteResultSchema>();
 054            var producers = _etProducerDataServices.GetEtProducersByRealId(order.EtProducer?.RealId);
 055            foreach (var producer in producers)
 56            {
 057                var substituteJson = await _tecDocDataManager.GetSubstitute(producer.Name, order.Article);
 058                var substitute = await _substituteResultCaster.ParseSubstituteResultSchemaAsync(substituteJson);
 059                result.Add(substitute);
 60            }
 061            return Json(result);
 062        }
 63
 64        [HttpGet]
 65        [Route("OrderStocks")]
 66        public async Task<IActionResult> OrderStocks(int orderId)
 67        {
 068            var order = await _orderServices.GetOrder(orderId);
 069            if (order?.Article == null)
 070                return NotFound();
 71
 072            var stocks = await _stockDataService.GetStocksDataByOrder(order);
 073            return Json(stocks);
 074        }
 75    }
 76}