public static IMediatorBuilder UseLog4Net(this IMediatorBuilder builder)
        {
            builder.WithRequestDecorator("Log4Net", typeof(LoggingRequestHandler <,>));
            builder.WithRequestDecorator("Log4NetAsync", typeof(AsyncLoggingRequestHandler <,>));

            return(builder);
        }
        public static IMediatorBuilder UseFluentValidation(this IMediatorBuilder builder)
        {
            builder.WithRequestDecorator("FluentValidation", typeof(ValidationRequestHandler <,>));
            builder.WithRequestDecorator("FluentValidationAsync", typeof(AsyncValidationRequestHandler <,>));

            return(builder);
        }
        /// <summary>
        /// 添加Orleans Silo
        /// </summary>
        /// <param name="builder"></param>
        /// <returns></returns>
        public static IMediatorBuilder AddMediatorOrleansSilo(this IMediatorBuilder builder)
        {
            var identitys = new Dictionary <string, Assembly>();

            builder.Descriptors.ForEach(descriptor =>
            {
                var identity = Utility.GetIdentity(descriptor.CommandType);
                if (!identitys.ContainsKey(identity))
                {
                    identitys.Add(identity, descriptor.CommandType.Assembly);
                }
            });

            builder.Services.AddOptions <OrleansOptions>()
            .Bind(OrleansOptions.Option)
            .PostConfigure(options =>
            {
                foreach (var kv in identitys)
                {
                    options.GrainNames.TryAdd(kv.Key, kv.Value);
                }
            });
            builder.AddMediatorOrleans()
            .Services.TryAddSingleton <ISiloFactory, SiloFactory>();
            return(builder);
        }
 /// <summary>
 ///
 /// </summary>
 /// <param name="builder"></param>
 /// <returns></returns>
 private static IMediatorBuilder AddMediatorOrleans(this IMediatorBuilder builder)
 {
     builder.Services.AddNlogLogger()
     .AddMicrosoftLogging()
     .AddOptions <OrleansOptions>()
     .Bind(OrleansOptions.Option)
     .Services
     .TryAddSingleton <IGrainCommandHandler, GrainCommandHandler>();
     return(builder);
 }
Example #5
0
 public AsyncPipeline(IMediatorBuilder mediatorBuilder)
 {
     _mediatorBuilder = mediatorBuilder;
     _methods         = new MethodCollection <Method <Func <object, object, Task> > > ();
     _direct          = null !;
 }
Example #6
0
 public Pipeline(IMediatorBuilder mediatorBuilder)
 {
     _mediatorBuilder = mediatorBuilder;
     _methods         = new MethodCollection <Method <Action <object, object> > > ();
     _direct          = null !;
 }
Example #7
0
 public void ConfigureMediatorServices(IMediatorBuilder mediatorBuilder)
 {
     mediatorBuilder.Services.AddOptions <ActivityExecutionConfigurationOptions>().Configure((cfg) => {
         cfg.RedirectUrlBase = "~/";
     });
 }
Example #8
0
 public PipelineBuilder(IMediatorBuilder mediatorBuilder)
 {
     _mediatorBuilder = mediatorBuilder;
 }
 public CancellablePipeline(IMediatorBuilder mediatorBuilder)
 {
     _mediatorBuilder = mediatorBuilder;
     _methods         = new MethodCollection <Method <Func <object, object, CancellationToken, Task> > > ();
     _direct          = null !;
 }
 /// <summary>
 /// 添加Orleans Client
 /// </summary>
 /// <param name="builder"></param>
 /// <returns></returns>
 public static IMediatorBuilder AddMediatorOrleansClient(this IMediatorBuilder builder)
 {
     builder.AddMediatorOrleans()
     .Services.TryAddSingleton <IProxyCommandHandlerProvider, ProxyCommandHandlerProvider>();
     return(builder);
 }
 /// <summary>
 /// 添加对<seealso cref="IMediator"/>Proxy实现
 /// </summary>
 /// <param name="builder"></param>
 /// <returns></returns>
 public static IMediatorBuilder AddMediatorOrleansProxy(this IMediatorBuilder builder)
 {
     return(builder.AddMediatorOrleansSilo()
            .AddMediatorOrleansClient());
 }