From 8b11faf10d1511bd7d06acf0ef7abb992c9dd9db Mon Sep 17 00:00:00 2001 From: Loretta Date: Sat, 29 Jun 2024 22:29:01 +0200 Subject: [PATCH] Implement object params to GetSignalRMessage --- AyCode.Core/AyCode.Core.csproj | 1 + .../Extensions/SerializeObjectExtensions.cs | 1 + .../SignalRs/IAcSignalRHubClient.cs | 35 +++++++++++++++++-- 3 files changed, 34 insertions(+), 3 deletions(-) diff --git a/AyCode.Core/AyCode.Core.csproj b/AyCode.Core/AyCode.Core.csproj index 88c6041..a676265 100644 --- a/AyCode.Core/AyCode.Core.csproj +++ b/AyCode.Core/AyCode.Core.csproj @@ -12,6 +12,7 @@ + diff --git a/AyCode.Core/Extensions/SerializeObjectExtensions.cs b/AyCode.Core/Extensions/SerializeObjectExtensions.cs index 7a35dd6..523fe54 100644 --- a/AyCode.Core/Extensions/SerializeObjectExtensions.cs +++ b/AyCode.Core/Extensions/SerializeObjectExtensions.cs @@ -12,6 +12,7 @@ public static class SerializeObjectExtensions { private static readonly JsonSerializerSettings Options = new() { + //TypeNameHandling = TypeNameHandling.All, ReferenceLoopHandling = ReferenceLoopHandling.Ignore, NullValueHandling = NullValueHandling.Ignore }; diff --git a/AyCode.Services/SignalRs/IAcSignalRHubClient.cs b/AyCode.Services/SignalRs/IAcSignalRHubClient.cs index d4b9f19..04ff98c 100644 --- a/AyCode.Services/SignalRs/IAcSignalRHubClient.cs +++ b/AyCode.Services/SignalRs/IAcSignalRHubClient.cs @@ -3,21 +3,50 @@ using MessagePack; using Newtonsoft.Json.Linq; using System.Text.RegularExpressions; using AyCode.Core.Interfaces; +using System.Collections.Generic; +using System.Linq.Expressions; namespace AyCode.Services.SignalRs; public class IdMessage { - public List Ids { get; private set; } = []; + public List Ids { get; private set; } = []; public IdMessage() {} - public IdMessage(params Guid[] ids) : this() + public IdMessage(IEnumerable ids) : this() { - Ids.AddRange(ids); + //Ids.AddRange(ids); + Ids.AddRange(ids.Select(x => + { + string item; + + //if (x is Expression expr) + //{ + // string aa = string.Empty; + // var serializer = new ExpressionSerializer(new JsonSerializer()); + // try + // { + // aa = serializer.SerializeText(expr); + // } + // catch(Exception ex) + // { + // Console.WriteLine(ex); + // } + + // item = (new[] { aa }).ToJson(); + //} + //else + item = (new[] { x }).ToJson(); + + return item; + })); } + public IdMessage(IEnumerable ids) : this(ids.Cast().ToArray()) + { } + public override string ToString() { return string.Join("; ", Ids);