Пример #1
0
        /// <summary>
        /// 命令是否通过
        /// </summary>
        /// <typeparam name="TCommand">命令类型</typeparam>
        /// <param name="command">命令信息</param>
        /// <param name="commandType"></param>
        /// <returns></returns>
        protected virtual ValidationResult CommandValidate <TCommand>(TCommand command, Type commandType) where TCommand : ICommand
        {
            /*新加命令参数验证*/
            var validator = command as IValidator <TCommand>;

            if (validator != null)
            {
                return(AnonymousExtension.Validate(validator));
            }

            var commandAttribute = CommandBehaviorStorager.Default.GetAttribute <ValidatorAttribute>(commandType);

            if (commandAttribute != null && commandAttribute.ValidatorType != null)
            {
                using (var scope = this.serviceLocator.BeginLifetimeScope())
                {
                    var ivalidator = scope.ResolveOptional(commandAttribute.ValidatorType) as IValidator;
                    if (ivalidator != null)
                    {
                        return(ivalidator.Validate(command));
                    }
                }
            }

            return(default(ValidationResult));
        }
Пример #2
0
        public void SPandParameter_inputInstenceObject_ReturnNoNullValueParameter_Test()
        {
            // Arrange
            var paraObj = new UserGroupMemberStudent()
            {
                Operate    = "Get",
                UserID     = "tester",
                IDs        = "0",
                SchoolCode = "0354",
                AppID      = "SIC",
                GroupID    = "Junior Students Work Group"
            };
            var anony = new {
            };

            // Concrete class dose not work
            //  var anonyPara =   AnonymousExtension.Anonymize(paraObj, anony);
            var anonyPara = AnonymousExtension.Anonymize2(paraObj, anony);



            string sp = "dbo.SIC_asm_SP";
            //   string expect = "dbo.SIC_asm_SP @Operate,@UserID,@IDs,@SchoolCode,@AppID,@GroupID";
            string expect = "dbo.SIC_asm_SP @GroupID,@SchoolCode,@Operate,@UserID,@IDs,@AppID";

            //  string expect = "dbo.SIC_asm_SP @Path";
            //Act
            var result = Factory.SPandParameter(sp, paraObj); // anonyPara);

            //Assert

            Assert.AreEqual(expect, result);
        }
Пример #3
0
 /// <summary>
 /// 发布事件
 /// </summary>
 /// <param name="model"></param>
 /// <param name="communication"></param>
 protected virtual void PublicCommand(RecoveryCommandModel model, out HandlerCommunication communication)
 {
     communication = this.GetCommandContext(model);
     AnonymousExtension.SendCommand(this.commandBus, model.Command, communication);
 }
Пример #4
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="context"></param>
 /// <param name="command"></param>
 protected virtual void OnSendingHandlerCommand(IEventContext context, ICommand command)
 {
     AnonymousExtension.SendCommand(this.commandBus, command, new HandlerCommunication(context));
 }
Пример #5
0
 /// <summary>
 /// 发布事件
 /// </summary>
 /// <param name="model"></param>
 /// <param name="context"></param>
 protected virtual void PublicEvent(RecoveryEventModel model, out ICommandContext context)
 {
     context = this.GetCommandContext(model);
     AnonymousExtension.PublishEvent(new FilterEventBus(model.EventHandlerType, this.serviceLocator, this.commandBus), model.Event, context);
 }