/// <summary> /// Add RabbitMQ /// </summary> /// <param name="build"><see cref="IRayBuilder>"/></param> /// <param name="name">Provider name</param> /// <returns></returns> private static IRayBuilder AddRabbitMQ(this IRayBuilder build, string name) { build.Services.AddSingletonNamedService <IEventPublisher>(name, (sp, n) => { return(new EventPublisher(sp, n)); }); build.Services.AddSingletonNamedService <IEventSubscriber>(name, (sp, n) => { return(new EventSubscriber(sp, n)); }); build.Services.AddSingletonNamedService <IRabbitChannelFactory>(name, (sp, n) => { return(new RabbitChannelFactory(sp, n)); }); return(build); }
/// <summary> /// Add PostgreSql Ray storage /// </summary> /// <param name="build"><see cref="IRayBuilder>"/></param> /// <param name="name">Provider name</param> /// <returns></returns> private static IRayBuilder AddPostgreSQL(this IRayBuilder build, string name) { build.Services.AddSingletonNamedService <IStateStorage>(name, (sp, n) => { return(new StateStorage(sp, n)); }); build.Services.AddSingletonNamedService <IEventStorage>(name, (sp, n) => { return(new EventStorage(sp, n)); }); build.Services.AddSingletonNamedService <IPostgreSqlTableStorage>(name, (sp, n) => { return(new PostgreSqlTableStorage(sp, n)); }); return(build); }
/// <summary> /// Add Protobuf serialization /// </summary> /// <param name="build"></param> /// <returns></returns> public static IRayBuilder AddProtobuf(this IRayBuilder build) { build.Services.AddSingletonNamedService <ISerializer, ProtobufSerializer>(Ray2.Protobuf.SerializationType.Protobuf); return(build); }
/// <summary> /// Add RabbitMQ /// </summary> /// <param name="build"><see cref="IRayBuilder>"/></param> /// <param name="name">Provider name</param> /// <param name="configuration">RabbitMQ configuration</param> /// <returns></returns> public static IRayBuilder AddRabbitMQ(this IRayBuilder build, string name, Action <RabbitOptions> configuration) { build.Services.Configure <RabbitOptions>(name, configuration); return(build.AddRabbitMQ(name)); }
/// <summary> /// Add PostgreSql Ray storage /// </summary> /// <param name="build"><see cref="IRayBuilder>"/></param> /// <param name="name">Provider name</param> /// <param name="configuration">PostgreSql configuration</param> /// <returns></returns> public static IRayBuilder AddPostgreSQL(this IRayBuilder build, string name, Action <PostgreSqlOptions> configuration) { build.Services.Configure <PostgreSqlOptions>(name, configuration); return(build.AddPostgreSQL(name)); }