예제 #1
0
        /// <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),
            });
        }
예제 #2
0
        /// <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);
        }
예제 #3
0
        /// <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);
        }
예제 #4
0
 /// <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));
 }
예제 #5
0
 /// <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));
 }