Implement object params to GetSignalRMessage

This commit is contained in:
Loretta 2024-06-29 22:29:01 +02:00
parent e3917c0036
commit 8b11faf10d
3 changed files with 34 additions and 3 deletions

View File

@ -12,6 +12,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="AutoMapper" Version="13.0.1" />
<PackageReference Include="MessagePack" Version="2.5.168" /> <PackageReference Include="MessagePack" Version="2.5.168" />
<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="8.0.0" /> <PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="8.0.0" /> <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="8.0.0" />

View File

@ -12,6 +12,7 @@ public static class SerializeObjectExtensions
{ {
private static readonly JsonSerializerSettings Options = new() private static readonly JsonSerializerSettings Options = new()
{ {
//TypeNameHandling = TypeNameHandling.All,
ReferenceLoopHandling = ReferenceLoopHandling.Ignore, ReferenceLoopHandling = ReferenceLoopHandling.Ignore,
NullValueHandling = NullValueHandling.Ignore NullValueHandling = NullValueHandling.Ignore
}; };

View File

@ -3,21 +3,50 @@ using MessagePack;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using AyCode.Core.Interfaces; using AyCode.Core.Interfaces;
using System.Collections.Generic;
using System.Linq.Expressions;
namespace AyCode.Services.SignalRs; namespace AyCode.Services.SignalRs;
public class IdMessage public class IdMessage
{ {
public List<Guid> Ids { get; private set; } = []; public List<string> Ids { get; private set; } = [];
public IdMessage() public IdMessage()
{} {}
public IdMessage(params Guid[] ids) : this() public IdMessage(IEnumerable<object> 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<Guid> ids) : this(ids.Cast<object>().ToArray())
{ }
public override string ToString() public override string ToString()
{ {
return string.Join("; ", Ids); return string.Join("; ", Ids);