SignalRServer InvokeMethodByMessageTag is in progress...

This commit is contained in:
jozsef.b@aycode.com 2024-05-31 20:52:42 +02:00
parent 4f736312cc
commit 0fd78ba482
2 changed files with 28 additions and 9 deletions

View File

@ -19,7 +19,7 @@ public static class SerializeObjectExtensions
public static string ToJson<T>(this T source) => JsonConvert.SerializeObject(source, Options);
public static string ToJson<T>(this IQueryable<T> source) where T : class, IAcSerializableToJson => JsonConvert.SerializeObject(source, Options);
public static string ToJson<T>(this IEnumerable<T> source) where T : class, IAcSerializableToJson => JsonConvert.SerializeObject(source, Options);
public static T? JsonTo<T>(this string json)
{
if (json.StartsWith("\"") && json.EndsWith("\"")) json = Regex.Unescape(json).TrimStart('"').TrimEnd('"');
@ -27,6 +27,12 @@ public static class SerializeObjectExtensions
return JsonConvert.DeserializeObject<T>(json, Options);
}
public static object? JsonTo(this string json, Type toType)
{
if (json.StartsWith("\"") && json.EndsWith("\"")) json = Regex.Unescape(json).TrimStart('"').TrimEnd('"');
return JsonConvert.DeserializeObject(json, toType, Options);
}
public static byte[] ToMessagePack(this object message) => MessagePackSerializer.Serialize(message);
public static byte[] ToMessagePack(this object message, MessagePackSerializerOptions options) => MessagePackSerializer.Serialize(message, options);

View File

@ -5,8 +5,18 @@ using System.Text.RegularExpressions;
namespace AyCode.Services.SignalRs;
public class SignalPostJsonMessage
{
[Key(0)]
public string PostDataJson { get; set; }
public SignalPostJsonMessage()
{}
protected SignalPostJsonMessage(string postDataJson) => PostDataJson = postDataJson;
}
[MessagePackObject]
public class SignalPostJsonDataMessage<TPostDataType> : ISignalPostMessage<TPostDataType> where TPostDataType : class
public class SignalPostJsonDataMessage<TPostDataType> : SignalPostJsonMessage, ISignalPostMessage<TPostDataType> where TPostDataType : class
{
[IgnoreMember]
private TPostDataType? _postData;
@ -25,12 +35,11 @@ public class SignalPostJsonDataMessage<TPostDataType> : ISignalPostMessage<TPost
}
}
[Key(0)]
public string PostDataJson { get; set; }
public SignalPostJsonDataMessage(){}
public SignalPostJsonDataMessage() : base()
{}
public SignalPostJsonDataMessage(TPostDataType postData) => PostData = postData;
public SignalPostJsonDataMessage(string postDataJson) => PostDataJson = postDataJson;
public SignalPostJsonDataMessage(string postDataJson) : base(postDataJson)
{}
}
[MessagePackObject]
@ -75,8 +84,12 @@ public sealed class SignalResponseJsonMessage : ISignalResponseMessage<string>
Status = status;
}
public SignalResponseJsonMessage(SignalResponseStatus status, object? responseData) : this(status, responseData.ToJson())
{ }
public SignalResponseJsonMessage(SignalResponseStatus status, object? responseData) : this(status)
{
if (responseData is string)
ResponseData = responseData as string;
else ResponseData = responseData.ToJson();
}
public SignalResponseJsonMessage(SignalResponseStatus status, string? responseDataJson) : this(status)
{