From 57425f91c04166efc3f558b77431c19063737925 Mon Sep 17 00:00:00 2001 From: Loretta Date: Thu, 4 Jul 2024 18:33:10 +0200 Subject: [PATCH] Implement UserProductMapping add/update/delete; improvements, fixes, etc... --- .../Services/AcSignalRClientBase.cs | 25 ++++++++++++++++--- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/AyCode.Blazor.Components/Services/AcSignalRClientBase.cs b/AyCode.Blazor.Components/Services/AcSignalRClientBase.cs index 6fdfa65..9bd4fd3 100644 --- a/AyCode.Blazor.Components/Services/AcSignalRClientBase.cs +++ b/AyCode.Blazor.Components/Services/AcSignalRClientBase.cs @@ -3,6 +3,7 @@ using AyCode.Core; using AyCode.Core.Extensions; using AyCode.Core.Helpers; using AyCode.Core.Loggers; +using AyCode.Interfaces.Entities; using AyCode.Services.Loggers; using AyCode.Services.SignalRs; using MessagePack.Resolvers; @@ -27,6 +28,7 @@ namespace AyCode.Blazor.Components.Services } } + public abstract class AcSignalRClientBase : IAcSignalRHubClient { private readonly ConcurrentDictionary _responseByRequestId = new(); @@ -117,16 +119,31 @@ namespace AyCode.Blazor.Components.Services public virtual Task GetAllAsync(int messageTag, Func, Task> responseCallback) => SendMessageToServerAsync(messageTag, null, responseCallback); - public virtual Task GetAllAsync(int messageTag, Func, Task> responseCallback, object[]? contextIds) - => SendMessageToServerAsync(messageTag, (contextIds == null || contextIds.Length == 0 ? null : new SignalPostJsonDataMessage(new IdMessage(contextIds))), responseCallback); - public virtual Task GetAllAsync(int messageTag, object[]? contextIds) where TResponseData : class - => SendMessageToServerAsync(messageTag, contextIds == null || contextIds.Length == 0 ? null : new SignalPostJsonDataMessage(new IdMessage(contextIds)), AcDomain.NextUniqueInt32); + public virtual Task GetAllAsync(int messageTag, Func, Task> responseCallback, object[]? contextParams) + => SendMessageToServerAsync(messageTag, (contextParams == null || contextParams.Length == 0 ? null : new SignalPostJsonDataMessage(new IdMessage(contextParams))), responseCallback); + public virtual Task GetAllAsync(int messageTag, object[]? contextParams) where TResponseData : class + => SendMessageToServerAsync(messageTag, contextParams == null || contextParams.Length == 0 ? null : new SignalPostJsonDataMessage(new IdMessage(contextParams)), AcDomain.NextUniqueInt32); public virtual Task PostDataAsync(int messageTag, TPostData postData) where TPostData : class => SendMessageToServerAsync(messageTag, new SignalPostJsonDataMessage(postData), AcDomain.NextUniqueInt32); public virtual Task PostDataAsync(int messageTag, TPostData postData, Func, Task> responseCallback) where TPostData : class => SendMessageToServerAsync(messageTag, new SignalPostJsonDataMessage(postData), responseCallback); + public Task GetAllIntoAsync(List intoList, int messageTag, object[]? contextParams = null) where T : IEntityGuid + { + return GetAllAsync>(messageTag, response => + { + if (response.Status != SignalResponseStatus.Success || response.ResponseData == null) + { + Logger.Error($"GetAllIntoAsync<{typeof(T).Name}>(); status: {response.Status}; dataCount: {response.ResponseData?.Count}; {ConstHelper.NameByValue(_tagsName, messageTag)};"); + return Task.CompletedTask; + } + + intoList.AddRange(response.ResponseData); + return Task.CompletedTask; + }, contextParams); + } + #endregion CRUD public virtual Task SendMessageToServerAsync(int messageTag) where TResponse : class