< Summary

Information
Class: OzonOrdersWeb.Areas.Studio2.Controllers.OzonWebhookLogController
Assembly: OzonOrdersWeb
File(s): /home/runner/work/Studio2Prod/Studio2Prod/OzonOrdersWeb/Areas/Studio2/Controllers/OzonWebhookLogController.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 37
Coverable lines: 37
Total lines: 76
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 4
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(...)100%210%
Details()0%2040%

File(s)

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

#LineLine coverage
 1using System;
 2using System.Linq;
 3using System.Threading.Tasks;
 4using Microsoft.AspNetCore.Authorization;
 5using Microsoft.AspNetCore.Mvc;
 6using OzonOrdersWeb.Areas.Studio2.ViewModels.OzonWebhookViewModels;
 7using Services.DataServices;
 8using OzonDomains.Models.OzonWebhook;
 9
 10namespace OzonOrdersWeb.Areas.Studio2.Controllers
 11{
 12    [Authorize(Roles = "User,Admin")]
 13    [Area("Studio2")]
 14    public class OzonWebhookLogController : Controller
 15    {
 16        private readonly OzonPushNotificationDataService _dataService;
 17        private readonly OzonClientServices _ozonClientServices;
 18
 019        public OzonWebhookLogController(
 020            OzonPushNotificationDataService dataService,
 021            OzonClientServices ozonClientServices)
 22        {
 023            _dataService = dataService;
 024            _ozonClientServices = ozonClientServices;
 025        }
 26
 27        [HttpGet]
 28        public IActionResult Index(
 29            string? messageType = null,
 30            int? clientId = null,
 31            string? processingStatus = null,
 32            string? postingNumber = null,
 33            DateTime? from = null,
 34            DateTime? to = null,
 35            int take = 200) =>
 036            RedirectToAction("Index", "JobLogs", new
 037            {
 038                area = "Studio2",
 039                tab = "webhook",
 040                messageType,
 041                clientId,
 042                processingStatus,
 043                postingNumber,
 044                from,
 045                to,
 046                take
 047            });
 48
 49        /// <summary>
 50        /// Возвращает JSON с одной записью для отображения сырого payload в модальном окне.
 51        /// </summary>
 52        [HttpGet]
 53        public async Task<IActionResult> Details(long id)
 54        {
 055            var record = await _dataService.GetByIdAsync(id);
 056            if (record == null)
 057                return NotFound();
 58
 059            return Json(new
 060            {
 061                id = record.Id,
 062                messageType = record.MessageType,
 063                postingNumber = record.PostingNumber,
 064                sellerId = record.SellerId,
 065                warehouseId = record.WarehouseId,
 066                processingStatus = record.ProcessingStatus,
 067                errorMessage = record.ErrorMessage,
 068                actionDetails = record.ActionDetails,
 069                sourceIpAddress = record.SourceIpAddress,
 070                receivedAt = record.ReceivedAt.ToString("dd.MM.yyyy HH:mm:ss"),
 071                processedAt = record.ProcessedAt?.ToString("dd.MM.yyyy HH:mm:ss"),
 072                rawPayload = record.RawPayload
 073            });
 074        }
 75    }
 76}