< Summary

Information
Class: OzonOrdersWeb.Areas.Studio2.Controllers.ChannelTasksController
Assembly: OzonOrdersWeb
File(s): /home/runner/work/Studio2Prod/Studio2Prod/OzonOrdersWeb/Areas/Studio2/Controllers/ChannelTasksController.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 16
Coverable lines: 16
Total lines: 47
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%
GetStatus(...)0%4260%
Download(...)0%7280%

File(s)

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

#LineLine coverage
 1using Microsoft.AspNetCore.Authorization;
 2using Microsoft.AspNetCore.Mvc;
 3using Services.ChannelTaskServices;
 4
 5namespace OzonOrdersWeb.Areas.Studio2.Controllers;
 6
 7[Area("Studio2")]
 8[Authorize(Roles = "User,Admin")]
 9[Route("Studio2/ChannelTasks")]
 10public sealed class ChannelTasksController : Controller
 11{
 12    private readonly IChannelTaskService _channelTasks;
 13
 014    public ChannelTasksController(IChannelTaskService channelTasks)
 15    {
 016        _channelTasks = channelTasks;
 017    }
 18
 19    [HttpGet("{taskId}")]
 20    public IActionResult GetStatus(string taskId)
 21    {
 022        if (string.IsNullOrWhiteSpace(taskId))
 023            return BadRequest(new { success = false, error = "taskId обязателен" });
 24
 025        if (!_channelTasks.TryGet(taskId.Trim(), out var task) || task == null)
 026            return NotFound(new { success = false, error = "Задача не найдена" });
 27
 028        return Ok(ChannelTaskResponses.ToStatusResponse(task));
 29    }
 30
 31    [HttpGet("{taskId}/download")]
 32    public IActionResult Download(string taskId)
 33    {
 034        if (string.IsNullOrWhiteSpace(taskId))
 035            return BadRequest("taskId обязателен");
 36
 037        if (!_channelTasks.TryGetCompletedFile(taskId.Trim(), out var filePath, out var fileName)
 038            || string.IsNullOrWhiteSpace(filePath)
 039            || string.IsNullOrWhiteSpace(fileName))
 40        {
 041            return NotFound("Файл ещё не готов или задача не найдена");
 42        }
 43
 044        var bytes = System.IO.File.ReadAllBytes(filePath);
 045        return File(bytes, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", fileName);
 46    }
 47}