< Summary

Information
Class: AspNetCoreGeneratedDocument.Areas_Studio2_Views_OrderCartItemStatus_CartStatuses
Assembly: OzonOrdersWeb
File(s): /home/runner/work/Studio2Prod/Studio2Prod/OzonOrdersWeb/Areas/Studio2/Views/OrderCartItemStatus/CartStatuses.cshtml
Line coverage
0%
Covered lines: 0
Uncovered lines: 25
Coverable lines: 25
Total lines: 78
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 12
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
ExecuteAsync()0%4260%
<ExecuteAsync()0%620%

File(s)

/home/runner/work/Studio2Prod/Studio2Prod/OzonOrdersWeb/Areas/Studio2/Views/OrderCartItemStatus/CartStatuses.cshtml

#LineLine coverage
 1@using OzonOrdersWeb.Areas.Studio2.ViewModels.Grid
 2@model IEnumerable<OzonDomains.Models.OrderCarts.ItemStatus>
 3@{
 04    ViewData["Title"] = "Статусы товаров с цветами";
 05    Layout = "~/Views/Shared/_Layout.cshtml";
 06    var highlightId = ViewBag.HighlightId as int?;
 07    var statuses = Model.ToList();
 08    var rows = statuses.Select(s =>
 09    {
 010        var orderIds = s.OrderItems.Select(x => x.StudioOrderId).ToArray();
 011        return new
 012        {
 013            id = s.Id,
 014            name = s.Name,
 015            ordersCount = orderIds.Length,
 016            ordersUrl = orderIds.Length > 0 ? Url.Action("ViewOrders", "Orders", new { area = "Studio2", ids = orderIds 
 017            color = s.StatusColor?.ColorCode
 018        };
 019    });
 20}
 21
 022@await Html.PartialAsync("_BsxGridShell")
 23
 24<div class="container-fluid py-3 bsx-surface">
 25    <div class="app-section-hero app-section-hero--import d-flex flex-wrap justify-content-between align-items-start gap
 26        <div>
 27            <h1><i class="fas fa-palette me-2 text-primary"></i>Статусы товаров</h1>
 28            <div class="subtitle">Статусы позиций корзины заказа и их цвета</div>
 29            <div class="app-section-hero__quick-links">
 30                <a asp-area="Studio2" asp-controller="AppStatus" asp-action="Index"><i class="fas fa-tags"></i>Статусы з
 31                <a asp-area="Studio2" asp-controller="SupplierStatus" asp-action="Index"><i class="fas fa-dolly"></i>Ста
 32            </div>
 33        </div>
 34        <div class="bsx-dir-stats">
 035            <span class="bsx-dir-stat">Всего <b>@statuses.Count</b></span>
 036            <span class="bsx-dir-stat">В заказах <b>@statuses.Count(s => s.OrderItems.Any())</b></span>
 37        </div>
 38    </div>
 39
 040    @await Html.PartialAsync("_BsxDirectoryGrid", new BsxDirectoryGridViewModel("cartStatus", "Статусы товаров", "fa-pal
 041        "Цвет сохраняется сразу. Количество заказов — ссылка на список этих заказов."))
 42</div>
 43
 44@section Scripts {
 45<script src="~/js/Studio2/Grid/bsx-directory.js" asp-append-version="true"></script>
 46<script>
 47    (function () {
 48        const D = window.BsxDirectory;
 049        const highlightId = @Json.Serialize(highlightId);
 50
 51        D.grid({
 52            key: 'dirCartStatus',
 53            prefix: 'cartStatus',
 054            rows: @Json.Serialize(rows),
 55            rowClassRules: { 'bsx-row-current': p => p.data && p.data.id === highlightId },
 56            onReady: api => {
 57                if (highlightId == null) return;
 58                const node = api.getRowNode(String(highlightId));
 59                if (node) { api.ensureNodeVisible(node, 'middle'); api.flashCells({ rowNodes: [node] }); }
 60            },
 61            columnDefs: [
 62                D.numCol({ field: 'id', headerName: 'ID', width: 90 }),
 63                { field: 'name', headerName: 'Название статуса', flex: 1, minWidth: 240, sort: 'asc',
 64                  cellRenderer: p => D.colorPill(p.value, p.data.color) },
 65                D.numCol({ field: 'ordersCount', headerName: 'Заказов', width: 130,
 66                  cellRenderer: p => p.data.ordersUrl
 67                      ? `<a href="${BsxGrid.esc(p.data.ordersUrl)}" target="_blank" rel="noopener" title="Заказы с этим 
 68                      : `<span class="bsx-muted">0</span>` }),
 69                D.colorCol({
 070                    updateUrl: '@Url.Action("UpdateStatusColor", "OrderCartItemStatus", new { area = "Studio2" })',
 071                    resetUrl: '@Url.Action("ResetStatusColor", "OrderCartItemStatus", new { area = "Studio2" })',
 72                    confirmReset: 'Сбросить цвет статуса?'
 73                })
 74            ]
 75        });
 76    })();
 77</script>
 78}

Methods/Properties

ExecuteAsync()
<ExecuteAsync()