< Summary

Information
Class: OzonOrdersWeb.Areas.Studio2.Controllers.ArmtekCartController
Assembly: OzonOrdersWeb
File(s): /home/runner/work/Studio2Prod/Studio2Prod/OzonOrdersWeb/Areas/Studio2/Controllers/ArmtekCartController.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 21
Coverable lines: 21
Total lines: 49
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 30
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%
Index()0%156120%
Test()0%4260%
Checkout()0%4260%
Remove()0%620%
IsProvider(...)0%2040%

File(s)

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

#LineLine coverage
 1using Microsoft.AspNetCore.Authorization;
 2using Microsoft.AspNetCore.Mvc;
 3using OzonOrdersWeb.Filters;
 4using OzonOrdersWeb.TransactionServices;
 5
 6namespace OzonOrdersWeb.Areas.Studio2.Controllers;
 7
 8[Area("Studio2")]
 9[Authorize(Roles = "User,Admin")]
 010public sealed class ArmtekCartController(ArmtekCartService cartService) : Controller
 11{
 12    [HttpGet]
 13    public async Task<IActionResult> Index(string provider = "Armtek", string tab = "cart", CancellationToken ct = defau
 14    {
 015        if (!IsProvider(provider)) return NotFound();
 016        ViewBag.Provider = provider;
 017        ViewBag.Tab = tab == "orders" ? "orders" : "cart";
 018        ViewBag.CartItems = await cartService.GetActiveAsync(provider, ct);
 019        ViewBag.Orders = await cartService.GetOrdersAsync(provider, ct);
 020        return View();
 021    }
 22
 23    [HttpPost, ValidateAntiForgeryToken]
 24    public async Task<IActionResult> Test(string provider, CancellationToken ct)
 25    {
 026        if (!IsProvider(provider)) return NotFound();
 027        TempData["ArmtekCartResult"] = string.Join(" ", (await cartService.TestAsync(provider, User.Identity?.Name ?? "u
 028        return RedirectToAction(nameof(Index), new { provider });
 029    }
 30
 31    [HttpPost, ValidateAntiForgeryToken]
 32    [SupplierOrderGuard]
 33    public async Task<IActionResult> Checkout(string provider, CancellationToken ct)
 34    {
 035        if (!IsProvider(provider)) return NotFound();
 036        TempData["ArmtekCartResult"] = string.Join(" ", (await cartService.CheckoutAsync(provider, User.Identity?.Name ?
 037        return RedirectToAction(nameof(Index), new { provider });
 038    }
 39
 40    [HttpPost, ValidateAntiForgeryToken]
 41    public async Task<IActionResult> Remove(string provider, long id, CancellationToken ct)
 42    {
 043        if (!IsProvider(provider)) return NotFound();
 044        await cartService.RemoveAsync(id, provider, ct);
 045        return RedirectToAction(nameof(Index), new { provider });
 046    }
 47
 048    private static bool IsProvider(string provider) => provider is "Armtek" or "ArmtekBy";
 49}