コード例 #1
0
 public static IConveyBuilder AddGumTreeModule(this IConveyBuilder builder)
 {
     builder.Services.AddHostedService <GumTreeHostedService>();
     builder.Services.AddSingleton <IGumTreeDtoValidator, GumTreeTopicDtoValidator>();
     builder.Services.AddSingleton <IGumTreeService, GumTreeService>();
     builder.Services.AddSingleton <IPagesGenerator, PagesGenerator>();
     builder.Services.AddSingleton <IGumTreeTopicDownloader, GumTreeTopicDownloader>();
     builder.Services.AddControllers().AddNewtonsoftJson();
     return(builder
            .AddMongo()
            .AddMongoRepository <GumtreeTopicDocument, Guid>("GumTreeTopics")
            .AddInfrastructure());
 }
コード例 #2
0
ファイル: Extensions.cs プロジェクト: rklepacz/Cine
        public static IConveyBuilder AddInfrastructure(this IConveyBuilder builder)
        {
            builder.Services.AddTransient <IHallsRepository, HallsRepository>();
            builder.Services.AddTransient <IScheduleSchemasRepository, ScheduleSchemasRepository>();
            builder.Services.AddTransient <ISchedulesRepository, SchedulesRepository>();
            builder.Services.AddTransient <ISchedulesQueryService, SchedulesQueryService>();
            builder.Services.AddTransient <IMoviesApiClient, MoviesApiClient>();
            builder.Services.AddSingleton <IEventMapper, EventMapper>();

            return(builder
                   .AddMongo()
                   .AddMongoRepository <HallDocument, Guid>("schedules_halls")
                   .AddMongoRepository <ScheduleSchemaDocument, Guid>("schedulesSchemas")
                   .AddMongoRepository <ScheduleDocument, Guid>("schedules"));
        }
コード例 #3
0
ファイル: Extensions.cs プロジェクト: Allesad/Convey
        public static IConveyBuilder AddMessageOutbox(this IConveyBuilder builder, string sectionName = SectionName)
        {
            if (!builder.TryRegister(RegistryName))
            {
                return(builder);
            }

            var options = builder.GetOptions <OutboxOptions>(sectionName);

            builder.Services.AddSingleton(options);
            builder.AddMongo();
            builder.AddMongoRepository <OutboxMessage, Guid>("outbox");
            builder.Services.AddTransient <IMessageOutbox, MongoMessageOutbox>();
            builder.Services.AddHostedService <OutboxProcessor>();
            return(builder);
        }
コード例 #4
0
 public static IConveyBuilder AddInfrastructure(this IConveyBuilder builder)
 {
     #if (mongo && postgres)
     builder.Services.AddTransient <IOrdersRepository, Persistence.Mongo.Repositories.OrdersRepository>();
     #else
     builder.Services.AddTransient <IOrdersRepository, OrdersRepository>();
     #endif
     #if (!shared)
     builder.Services.AddTransient <IDispatcher, Dispatcher>();
     #endif
     #if (mongo)
     return(builder
            .AddMongo()
            .AddMongoRepository <OrderDocument, Guid>("orders"));
     #else
     return(builder);
     #endif
 }
コード例 #5
0
        public static IConveyBuilder AddMessageInbox(this IConveyBuilder builder, string sectionName = SectionName)
        {
            if (!builder.TryRegister(RegistryName))
            {
                return(builder);
            }

            var options = builder.GetOptions <InboxOptions>(sectionName);

            builder.Services.AddSingleton(options);
            if (!options.Enabled)
            {
                builder.RegisterInMemoryInbox();
                return(builder);
            }

            switch (options.Type?.ToLowerInvariant() ?? string.Empty)
            {
            case "memory":
                builder.RegisterInMemoryInbox();
                break;

            case "mongo":
                builder.AddMongo();
                builder.Services.AddTransient <IMessageInbox, MongoMessageInbox>();
                builder.Services.AddTransient <MongoInboxInitializer>();
                builder.AddInitializer <MongoInboxInitializer>();
                break;

            case "redis":
                builder.Services.AddTransient <IMessageInbox, RedisMessageInbox>();
                break;

            default:
                builder.RegisterInMemoryInbox();
                break;
            }

            return(builder);
        }
コード例 #6
0
        public static IConveyBuilder AddMessageOutbox(this IConveyBuilder builder, string sectionName = SectionName)
        {
            if (!builder.TryRegister(RegistryName))
            {
                return(builder);
            }

            var options = builder.GetOptions <OutboxOptions>(sectionName);

            builder.Services.AddSingleton(options);

            switch (options.Type?.ToLowerInvariant() ?? string.Empty)
            {
            default:
                builder.AddMongo();
                builder.AddMongoRepository <OutboxMessage, Guid>("outbox");
                builder.Services.AddTransient <IMessageOutbox, MongoMessageOutbox>();
                builder.Services.AddHostedService <OutboxProcessor>();
                break;
            }

            return(builder);
        }