< Summary

Information
Class: OzonOrdersWeb.WebServices.Orders.OrderListFieldReadAccessBuilder
Assembly: OzonOrdersWeb
File(s): /home/runner/work/Studio2Prod/Studio2Prod/OzonOrdersWeb/WebServices/Orders/OrderListFieldReadAccessBuilder.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 15
Coverable lines: 15
Total lines: 40
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 6
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
FromBundle(...)0%4260%
FromUserIdAsync()100%210%

File(s)

/home/runner/work/Studio2Prod/Studio2Prod/OzonOrdersWeb/WebServices/Orders/OrderListFieldReadAccessBuilder.cs

#LineLine coverage
 1using OzonOrdersWeb.Areas.Admin.OrderList;
 2using Services.Authorization.Dtos;
 3using Services.Authorization.Services;
 4
 5namespace OzonOrdersWeb.WebServices.Orders;
 6
 7public static class OrderListFieldReadAccessBuilder
 8{
 9    public static IReadOnlyDictionary<string, bool> FromBundle(UserPermissionsBundle bundle)
 10    {
 011        if (bundle.IsSuperAdmin)
 12        {
 013            return OrderListColumnCatalog.All.ToDictionary(
 014                c => c.FieldName,
 015                _ => true,
 016                StringComparer.OrdinalIgnoreCase);
 17        }
 18
 019        var fromBundle = bundle.Fields
 020            .Where(f => string.Equals(f.EntityName, OrderListColumnCatalog.EntityName, StringComparison.OrdinalIgnoreCas
 021            .ToDictionary(f => f.FieldName, f => f.CanRead, StringComparer.OrdinalIgnoreCase);
 22
 023        var dict = new Dictionary<string, bool>(StringComparer.OrdinalIgnoreCase);
 024        foreach (var col in OrderListColumnCatalog.All)
 25        {
 026            dict[col.FieldName] = fromBundle.TryGetValue(col.FieldName, out var r) ? r : true;
 27        }
 28
 029        return dict;
 30    }
 31
 32    public static async Task<IReadOnlyDictionary<string, bool>> FromUserIdAsync(
 33        IPermissionService permissionService,
 34        string userId,
 35        CancellationToken cancellationToken = default)
 36    {
 037        var bundle = await permissionService.GetUserPermissionsAsync(userId, cancellationToken);
 038        return FromBundle(bundle);
 039    }
 40}