From 1b8d9bef619f69040ba1f705a6e5ef9285daea8e Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Wed, 25 Oct 2023 16:03:07 +0500 Subject: [PATCH 1/5] =?UTF-8?q?ReportsHub,=20=D0=BC=D0=B5=D1=82=D0=BE?= =?UTF-8?q?=D0=B4=20AddToGroup,=20=D0=BA=D0=BE=D1=82=D0=BE=D1=80=D1=8B?= =?UTF-8?q?=D0=B9=20=D0=BE=D0=BF=D0=BE=D0=B2=D0=B5=D1=89=D0=B0=D0=B5=D1=82?= =?UTF-8?q?=20=D0=B3=D1=80=D1=83=D0=BF=D0=BF=D1=83=20=D0=BE=20=D1=81=D1=82?= =?UTF-8?q?=D0=B0=D1=82=D1=83=D1=81=D0=B5=20=D0=B7=D0=B0=D0=B3=D1=80=D1=83?= =?UTF-8?q?=D0=B7=D0=BA=D0=B8=20=D1=80=D0=B0=D0=BF=D0=BE=D1=80=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AsbCloudWebApi/SignalR/ReportsHub.cs | 47 ++++++++++++++++++++++++++-- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/AsbCloudWebApi/SignalR/ReportsHub.cs b/AsbCloudWebApi/SignalR/ReportsHub.cs index b0bd95b7..fa1e2787 100644 --- a/AsbCloudWebApi/SignalR/ReportsHub.cs +++ b/AsbCloudWebApi/SignalR/ReportsHub.cs @@ -1,4 +1,10 @@ -using Microsoft.AspNetCore.Authorization; +using AsbCloudApp.Data; +using AsbCloudInfrastructure.Background; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.SignalR; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; namespace AsbCloudWebApi.SignalR { @@ -8,6 +14,43 @@ namespace AsbCloudWebApi.SignalR [Authorize] public class ReportsHub : BaseHub { - + private readonly BackgroundWorker backgroundWorker; + + public ReportsHub(BackgroundWorker backgroundWorker, IHubContext hubContext) + { + this.backgroundWorker = backgroundWorker; + } + + public override async Task AddToGroup(string groupName) + { + var workId = groupName.Replace("Report_", ""); + var work = backgroundWorker.WorkStore.RunOnceQueue.FirstOrDefault(work => work.Id == workId); + if (work is null) return; + + await base.AddToGroup(groupName); + var state = work.CurrentState; + var progress = new ReportProgressDto() + { + Operation = "Ожидает начала в очереди.", + Progress = 0f, + }; + if (state is not null) + { + progress = new ReportProgressDto + { + CurrentPage = 0, + Operation = state.State, + Progress = (float)state.Progress, + TotalPages = 0, + }; + } + + await Clients.Group(groupName).SendAsync( + nameof(IReportHubClient.GetReportProgress), + progress, + CancellationToken.None + ); + + } } } From fcd9c3b8618e578bcd8770ecf7b431bc442d35e9 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Wed, 25 Oct 2023 16:08:13 +0500 Subject: [PATCH 2/5] =?UTF-8?q?=D0=A3=D0=B1=D1=80=D0=B0=D0=BD=D0=BE=20?= =?UTF-8?q?=D0=BB=D0=B8=D1=88=D0=BD=D0=B5=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AsbCloudWebApi/SignalR/ReportsHub.cs | 2 -- 1 file changed, 2 deletions(-) diff --git a/AsbCloudWebApi/SignalR/ReportsHub.cs b/AsbCloudWebApi/SignalR/ReportsHub.cs index fa1e2787..1d78decc 100644 --- a/AsbCloudWebApi/SignalR/ReportsHub.cs +++ b/AsbCloudWebApi/SignalR/ReportsHub.cs @@ -38,10 +38,8 @@ namespace AsbCloudWebApi.SignalR { progress = new ReportProgressDto { - CurrentPage = 0, Operation = state.State, Progress = (float)state.Progress, - TotalPages = 0, }; } From 40ce3055f875f64257bc18a22235885023df2a6e Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Wed, 25 Oct 2023 16:09:17 +0500 Subject: [PATCH 3/5] =?UTF-8?q?=D0=A3=D0=B1=D1=80=D0=B0=D0=BD=D0=BE=20?= =?UTF-8?q?=D0=BB=D0=B8=D1=88=D0=BD=D0=B5=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AsbCloudWebApi/SignalR/ReportsHub.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AsbCloudWebApi/SignalR/ReportsHub.cs b/AsbCloudWebApi/SignalR/ReportsHub.cs index 1d78decc..c761e8c9 100644 --- a/AsbCloudWebApi/SignalR/ReportsHub.cs +++ b/AsbCloudWebApi/SignalR/ReportsHub.cs @@ -16,7 +16,7 @@ namespace AsbCloudWebApi.SignalR { private readonly BackgroundWorker backgroundWorker; - public ReportsHub(BackgroundWorker backgroundWorker, IHubContext hubContext) + public ReportsHub(BackgroundWorker backgroundWorker) { this.backgroundWorker = backgroundWorker; } From f620d75a19c24f64358a3b0c1ab5362addbb14df Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Wed, 25 Oct 2023 16:12:35 +0500 Subject: [PATCH 4/5] =?UTF-8?q?=D0=A4=D0=B8=D0=BA=D1=81=20=D0=BC=D0=B5?= =?UTF-8?q?=D1=82=D0=BE=D0=B4=D0=B0=20AddToGroup?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AsbCloudWebApi/SignalR/ReportsHub.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/AsbCloudWebApi/SignalR/ReportsHub.cs b/AsbCloudWebApi/SignalR/ReportsHub.cs index c761e8c9..18e89473 100644 --- a/AsbCloudWebApi/SignalR/ReportsHub.cs +++ b/AsbCloudWebApi/SignalR/ReportsHub.cs @@ -23,17 +23,18 @@ namespace AsbCloudWebApi.SignalR public override async Task AddToGroup(string groupName) { + await base.AddToGroup(groupName); + var workId = groupName.Replace("Report_", ""); var work = backgroundWorker.WorkStore.RunOnceQueue.FirstOrDefault(work => work.Id == workId); - if (work is null) return; - await base.AddToGroup(groupName); - var state = work.CurrentState; var progress = new ReportProgressDto() { Operation = "Ожидает начала в очереди.", Progress = 0f, }; + + var state = work?.CurrentState; if (state is not null) { progress = new ReportProgressDto From e18e4e927367051653ea864bb360433fe702dfda Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Wed, 25 Oct 2023 16:30:35 +0500 Subject: [PATCH 5/5] =?UTF-8?q?=D1=84=D0=B8=D0=BA=D1=81=20=D0=B2=D0=BD?= =?UTF-8?q?=D1=83=D1=82=D1=80=D0=B8=20AddToGroup?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AsbCloudWebApi/SignalR/ReportsHub.cs | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/AsbCloudWebApi/SignalR/ReportsHub.cs b/AsbCloudWebApi/SignalR/ReportsHub.cs index 18e89473..1097c5ef 100644 --- a/AsbCloudWebApi/SignalR/ReportsHub.cs +++ b/AsbCloudWebApi/SignalR/ReportsHub.cs @@ -37,11 +37,8 @@ namespace AsbCloudWebApi.SignalR var state = work?.CurrentState; if (state is not null) { - progress = new ReportProgressDto - { - Operation = state.State, - Progress = (float)state.Progress, - }; + progress.Operation = state.State; + progress.Progress = (float)state.Progress; } await Clients.Group(groupName).SendAsync(