Esempio n. 1
0
        /// <summary>
        /// 批量保存领域命令
        /// </summary>
        /// <param name="command">命令列表</param>
        /// <returns></returns>
        public void Save(IOperateCommand command)
        {
            if (command == null)
            {
                return;
            }

            if (this.CommandFilter(command, CommandBehaviorStorager.Default))
            {
                this.Send(command);
            }
        }
Esempio n. 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);
        }
Esempio n. 3
0
        /// <summary>
        /// 发送一个命令,该命令会被包装为<see cref="CommandStreamMessage"/> 并发送到指定队列中
        /// </summary>
        /// <param name="e">The e.</param>
        protected virtual void Send(IOperateCommand e)
        {
            if (this.messageProducer == null)
            {
                return;
            }

            this.Startup();

            var message = e.ConvertTo(this.jsonSerializer);

            try
            {
                this.messageProducer.Send(new MessagePacket()
                {
                    ContentType = MessagePacket.GetContentType(message),
                    Body        = this.jsonSerializer.Serialize(message),
                }, null);
            }
            catch (Exception ex)
            {
                this.HandlerException(ex);
            }
        }
Esempio n. 4
0
 /// <summary>
 /// 命令过滤器,如果为true,则发送命令,否则不发送
 /// </summary>
 /// <param name="e">The e.</param>
 /// <param name="commandBehaviorStorage">The Command behavior storage.</param>
 /// <returns></returns>
 protected virtual bool CommandFilter(IOperateCommand e, CommandBehaviorStorager commandBehaviorStorage)
 {
     return(true);
 }
Esempio n. 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));
 }
Esempio n. 6
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="operaCommand"></param>
 /// <returns></returns>
 public static CommandStreamMessage ConvertTo(this IOperateCommand operaCommand)
 {
     return(CommandStreamHelper.ConvertTo(operaCommand));
 }
 /// <summary>
 /// 批量保存领域命令
 /// </summary>
 /// <param name="command">命令列表</param>
 /// <returns></returns>
 public void Save(IOperateCommand command)
 {
 }
Esempio n. 8
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="operaCommand"></param>
 /// <returns></returns>
 public static CommandStreamMessage ConvertTo(IOperateCommand operaCommand)
 {
     return(ConvertTo(operaCommand, Never.Serialization.SerializeEnvironment.JsonSerializer));
 }