/// <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)); }
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); }
/// <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); }
/// <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)); }
/// <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); }