< Summary

Information
Class: Services.SignalRServices.OrderHistoryHub
Assembly: Services
File(s): /home/runner/work/Studio2Prod/Studio2Prod/AppRepository/SignalRServices/OrderHistoryHub.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 23
Coverable lines: 23
Total lines: 53
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
.ctor(...)100%210%
RequestRecentChanges()100%210%
SendChangeNotification()100%210%

File(s)

/home/runner/work/Studio2Prod/Studio2Prod/AppRepository/SignalRServices/OrderHistoryHub.cs

#LineLine coverage
 1using Microsoft.AspNetCore.SignalR;
 2using Services.DataServices;
 3using System.Threading.Tasks;
 4
 5namespace Services.SignalRServices
 6{
 7    public class OrderHistoryHub : Hub
 8    {
 9        private readonly IOrderHistoryDataService _orderHistoryService;
 10
 011        public OrderHistoryHub(IOrderHistoryDataService orderHistoryService)
 12        {
 013            _orderHistoryService = orderHistoryService;
 014        }
 15
 16        // Этот метод будет вызываться из JavaScript
 17        public async Task RequestRecentChanges()
 18        {
 19            try
 20            {
 021                var changes = await _orderHistoryService.GetRecentChangesAsync(50);
 22
 23                // Преобразуем для безопасной передачи
 024                var safeChanges = changes.Select(c => new
 025                {
 026                    c.Id,
 027                    c.OrderId,
 028                    ColumnName = c.ColumnName ?? "",
 029                    ColumnDisplayName = c.ColumnDisplayName ?? "",
 030                    OldValue = c.OldValue,
 031                    NewValue = c.NewValue,
 032                    ChangedAt = c.ChangedAt,
 033                    ChangedBy = c.ChangedBy ?? ""
 034                }).ToList();
 35
 36                // Отправляем данные обратно caller'у
 037                await Clients.Caller.SendAsync("ReceiveRecentChanges", safeChanges);
 038            }
 039            catch (Exception ex)
 40            {
 041                Console.WriteLine($"Error in RequestRecentChanges: {ex.Message}");
 42                // Можно отправить ошибку клиенту
 043                await Clients.Caller.SendAsync("ReceiveError", ex.Message);
 44            }
 045        }
 46
 47        // Метод для отправки уведомлений о новых изменениях
 48        public async Task SendChangeNotification(object change)
 49        {
 050            await Clients.All.SendAsync("ReceiveChange", change);
 051        }
 52    }
 53}