/// <summary> /// 使用Json /// </summary> /// <param name="object">消息对象</param> /// <param name="jsonSerilizer">json序列化对象,可以使用 Never.JsonNet.JsonNetSerializer对象 </param> /// <returns></returns> public static MessagePacket UseJson <T>(T @object, Serialization.IJsonSerializer jsonSerilizer) { if (@object == null) { return(new MessagePacket()); } var type = @object.GetType(); return(new MessagePacket() { ContentType = GetContentType(type), Body = jsonSerilizer.Serialize(@object), }); }
/// <summary> /// /// </summary> /// <param name="operaCommand"></param> /// <param name="jsonSerializer"></param> /// <returns></returns> public static CommandStreamMessage ConvertTo(IOperateCommand operaCommand, Serialization.IJsonSerializer jsonSerializer) { var type = operaCommand.Command.GetType(); var message = new CommandStreamMessage() { AppDomain = operaCommand.AppDomain, CreateDate = operaCommand.CreateDate, Creator = operaCommand.Creator, CommandContent = jsonSerializer.SerializeObject(operaCommand.Command), CommandName = type.Name, CommandType = Regex.Replace(type.AssemblyQualifiedName, "version=(.*?),", "", RegexOptions.IgnoreCase), HashCode = operaCommand.HashCode, Increment = operaCommand.Increment, AggregateId = operaCommand.AggregateId, AggregateIdType = Regex.Replace(operaCommand.AggregateIdType.AssemblyQualifiedName, "version=(.*?),", "", RegexOptions.IgnoreCase), Version = operaCommand.Version, }; return(message); }
/// <summary> /// /// </summary> /// <param name="operaEvent"></param> /// <param name="jsonSerializer"></param> /// <returns></returns> public static EventStreamMessage ConvertTo(IOperateEvent operaEvent, Serialization.IJsonSerializer jsonSerializer) { var type = operaEvent.Event.GetType(); var message = new EventStreamMessage() { AggregateType = operaEvent.AggregateType.FullName, AppDomain = operaEvent.AppDomain, CreateDate = operaEvent.CreateDate, Creator = operaEvent.Creator, EventContent = jsonSerializer.SerializeObject(operaEvent.Event), EventName = type.Name, EventType = Regex.Replace(type.AssemblyQualifiedName, "version=(.*?),", "", RegexOptions.IgnoreCase), HashCode = operaEvent.HashCode, Increment = operaEvent.Increment, AggregateId = operaEvent.AggregateId, AggregateIdType = Regex.Replace(operaEvent.AggregateIdType.AssemblyQualifiedName, "version=(.*?),", "", RegexOptions.IgnoreCase), Version = operaEvent.Version, }; return(message); }
/// <summary> /// /// </summary> /// <param name="operaEvent"></param> /// <param name="jsonSerializer"></param> /// <returns></returns> public static EventStreamMessage ConvertTo(this IOperateEvent operaEvent, Serialization.IJsonSerializer jsonSerializer) { return(EventStreamHelper.ConvertTo(operaEvent, jsonSerializer)); }
/// <summary> /// /// </summary> /// <param name="operaCommand"></param> /// <param name="jsonSerializer"></param> /// <returns></returns> public static CommandStreamMessage ConvertTo(this IOperateCommand operaCommand, Serialization.IJsonSerializer jsonSerializer) { return(CommandStreamHelper.ConvertTo(operaCommand, jsonSerializer)); }