Exemple #1
0
        public static IServiceCollection AddStorageModule(this IServiceCollection services, StorageOptions storageOptions, MessageBrokerOptions messageBrokerOptions, string connectionString, string migrationsAssembly = "")
        {
            services.AddDbContext <StorageDbContext>(options => options.UseSqlServer(connectionString, sql =>
            {
                if (!string.IsNullOrEmpty(migrationsAssembly))
                {
                    sql.MigrationsAssembly(migrationsAssembly);
                }
            }))
            .AddScoped <IRepository <FileEntry, Guid>, Repository <FileEntry, Guid> >();

            DomainEvents.RegisterHandlers(Assembly.GetExecutingAssembly(), services);

            services.AddMessageHandlers(Assembly.GetExecutingAssembly());

            services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>();
            services.AddScoped <ICurrentUser, CurrentWebUser>();

            services.AddStorageManager(storageOptions);

            services.AddMessageBusSender <FileUploadedEvent>(messageBrokerOptions)
            .AddMessageBusSender <FileDeletedEvent>(messageBrokerOptions)
            .AddMessageBusReceiver <FileUploadedEvent>(messageBrokerOptions)
            .AddMessageBusReceiver <FileDeletedEvent>(messageBrokerOptions);

            return(services);
        }
Exemple #2
0
        public static IServiceCollection AddProductModule(this IServiceCollection services, AppSettings appSettings)
        {
            services.AddDbContext <ProductDbContext>(options => options.UseSqlServer(appSettings.ConnectionStrings.ClassifiedAds, sql =>
            {
                if (!string.IsNullOrEmpty(appSettings.ConnectionStrings.MigrationsAssembly))
                {
                    sql.MigrationsAssembly(appSettings.ConnectionStrings.MigrationsAssembly);
                }
            }));

            services
            .AddScoped <IRepository <Product, Guid>, Repository <Product, Guid> >()
            .AddScoped(typeof(IProductRepository), typeof(ProductRepository))
            .AddScoped <IRepository <AuditLogEntry, Guid>, Repository <AuditLogEntry, Guid> >()
            .AddScoped <IRepository <EventLog, long>, Repository <EventLog, long> >();

            DomainEvents.RegisterHandlers(Assembly.GetExecutingAssembly(), services);

            services.AddMessageHandlers(Assembly.GetExecutingAssembly());

            services.AddAuthorizationPolicies(Assembly.GetExecutingAssembly());

            services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>();
            services.AddScoped <ICurrentUser, CurrentWebUser>();

            services.AddScoped(typeof(ICsvReader <>), typeof(CsvReader <>));
            services.AddScoped(typeof(ICsvWriter <>), typeof(CsvWriter <>));

            services.AddMessageBusSender <AuditLogCreatedEvent>(appSettings.MessageBroker);

            return(services);
        }
Exemple #3
0
        public static IServiceCollection AddStorageModule(this IServiceCollection services, AppSettings appSettings)
        {
            services.AddDbContext <StorageDbContext>(options => options.UseSqlServer(appSettings.ConnectionStrings.ClassifiedAds, sql =>
            {
                if (!string.IsNullOrEmpty(appSettings.ConnectionStrings.MigrationsAssembly))
                {
                    sql.MigrationsAssembly(appSettings.ConnectionStrings.MigrationsAssembly);
                }
            }))
            .AddScoped <IRepository <FileEntry, Guid>, Repository <FileEntry, Guid> >();

            DomainEvents.RegisterHandlers(Assembly.GetExecutingAssembly(), services);

            services.AddMessageHandlers(Assembly.GetExecutingAssembly());

            services.AddAuthorizationPolicies(Assembly.GetExecutingAssembly());

            services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>();
            services.AddScoped <ICurrentUser, CurrentWebUser>();

            services.AddStorageManager(appSettings.Storage);

            services.AddMessageBusSender <FileUploadedEvent>(appSettings.MessageBroker)
            .AddMessageBusSender <FileDeletedEvent>(appSettings.MessageBroker)
            .AddMessageBusReceiver <FileUploadedEvent>(appSettings.MessageBroker)
            .AddMessageBusReceiver <FileDeletedEvent>(appSettings.MessageBroker);

            return(services);
        }
        public static IServiceCollection AddConfigurationModule(this IServiceCollection services, ConfigurationModuleOptions moduleOptions)
        {
            services.Configure <ConfigurationModuleOptions>(op =>
            {
                op.ConnectionStrings = moduleOptions.ConnectionStrings;
                op.Certificates      = moduleOptions.Certificates;
            });

            services.AddDbContext <ConfigurationDbContext>(options => options.UseSqlServer(moduleOptions.ConnectionStrings.Default, sql =>
            {
                if (!string.IsNullOrEmpty(moduleOptions.ConnectionStrings.MigrationsAssembly))
                {
                    sql.MigrationsAssembly(moduleOptions.ConnectionStrings.MigrationsAssembly);
                }
            }))
            .AddScoped <IRepository <ConfigurationEntry, Guid>, Repository <ConfigurationEntry, Guid> >();

            DomainEvents.RegisterHandlers(Assembly.GetExecutingAssembly(), services);

            services.AddMessageHandlers(Assembly.GetExecutingAssembly());

            services.AddAuthorizationPolicies(Assembly.GetExecutingAssembly());

            return(services);
        }
        public static IServiceCollection AddConfigurationModule(this IServiceCollection services, Action <ConfigurationModuleOptions> configureOptions)
        {
            var settings = new ConfigurationModuleOptions();

            configureOptions(settings);

            services.Configure(configureOptions);

            services.AddDbContext <ConfigurationDbContext>(options => options.UseSqlServer(settings.ConnectionStrings.Default, sql =>
            {
                if (!string.IsNullOrEmpty(settings.ConnectionStrings.MigrationsAssembly))
                {
                    sql.MigrationsAssembly(settings.ConnectionStrings.MigrationsAssembly);
                }
            }))
            .AddScoped <IRepository <ConfigurationEntry, Guid>, Repository <ConfigurationEntry, Guid> >();

            DomainEvents.RegisterHandlers(Assembly.GetExecutingAssembly(), services);

            services.AddMessageHandlers(Assembly.GetExecutingAssembly());

            services.AddAuthorizationPolicies(Assembly.GetExecutingAssembly());

            services.AddScoped <IExcelReader <List <ConfigurationEntry> >, ConfigurationEntryExcelReader>();
            services.AddScoped <IExcelWriter <List <ConfigurationEntry> >, ConfigurationEntryExcelWriter>();

            return(services);
        }
Exemple #6
0
        public static IServiceCollection AddNotificationModule(this IServiceCollection services, MessageBrokerOptions messageBrokerOptions, NotificationOptions notificationOptions, string connectionString, string migrationsAssembly = "")
        {
            services
            .AddDbContext <NotificationDbContext>(options => options.UseSqlServer(connectionString, sql =>
            {
                if (!string.IsNullOrEmpty(migrationsAssembly))
                {
                    sql.MigrationsAssembly(migrationsAssembly);
                }
            }))
            .AddScoped <IRepository <EmailMessage, Guid>, Repository <EmailMessage, Guid> >()
            .AddScoped <IRepository <SmsMessage, Guid>, Repository <SmsMessage, Guid> >()
            .AddScoped(typeof(IEmailMessageRepository), typeof(EmailMessageRepository))
            .AddScoped(typeof(ISmsMessageRepository), typeof(SmsMessageRepository))
            .AddScoped <IEmailMessageService, EmailMessageService>();

            services
            .AddScoped <EmailMessageService>()
            .AddScoped <SmsMessageService>();

            DomainEvents.RegisterHandlers(Assembly.GetExecutingAssembly(), services);

            services.AddMessageHandlers(Assembly.GetExecutingAssembly());

            services
            .AddMessageBusSender <EmailMessageCreatedEvent>(messageBrokerOptions)
            .AddMessageBusSender <SmsMessageCreatedEvent>(messageBrokerOptions);

            services.AddNotificationServices(notificationOptions);

            return(services);
        }
Exemple #7
0
        public static IServiceCollection AddProductModule(this IServiceCollection services, string connectionString, string migrationsAssembly = "")
        {
            services.AddDbContext <ProductDbContext>(options => options.UseSqlServer(connectionString, sql =>
            {
                if (!string.IsNullOrEmpty(migrationsAssembly))
                {
                    sql.MigrationsAssembly(migrationsAssembly);
                }
            }));

            services
            .AddScoped <IRepository <Product, Guid>, Repository <Product, Guid> >()
            .AddScoped(typeof(IProductRepository), typeof(ProductRepository));

            DomainEvents.RegisterHandlers(Assembly.GetExecutingAssembly(), services);

            services.AddMessageHandlers(Assembly.GetExecutingAssembly());

            services.AddAuthorizationPolicies(Assembly.GetExecutingAssembly());

            services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>();
            services.AddScoped <ICurrentUser, CurrentWebUser>();

            return(services);
        }
        public static IServiceCollection AddStorageModule(this IServiceCollection services, StorageModuleOptions moduleOptions)
        {
            services.Configure <StorageModuleOptions>(op =>
            {
                op.ConnectionStrings = moduleOptions.ConnectionStrings;
                op.Storage           = moduleOptions.Storage;
                op.MessageBroker     = moduleOptions.MessageBroker;
            });

            services.AddDbContext <StorageDbContext>(options => options.UseSqlServer(moduleOptions.ConnectionStrings.Default, sql =>
            {
                if (!string.IsNullOrEmpty(moduleOptions.ConnectionStrings.MigrationsAssembly))
                {
                    sql.MigrationsAssembly(moduleOptions.ConnectionStrings.MigrationsAssembly);
                }
            }))
            .AddScoped <IRepository <FileEntry, Guid>, Repository <FileEntry, Guid> >();

            DomainEvents.RegisterHandlers(Assembly.GetExecutingAssembly(), services);

            services.AddMessageHandlers(Assembly.GetExecutingAssembly());

            services.AddStorageManager(moduleOptions.Storage);

            services.AddMessageBusSender <FileUploadedEvent>(moduleOptions.MessageBroker);
            services.AddMessageBusSender <FileDeletedEvent>(moduleOptions.MessageBroker);

            services.AddAuthorizationPolicies(Assembly.GetExecutingAssembly());

            return(services);
        }
        public static IServiceCollection AddNotificationModule(this IServiceCollection services, AppSettings appSettings)
        {
            services
            .AddDbContext <NotificationDbContext>(options => options.UseSqlServer(appSettings.ConnectionStrings.ClassifiedAds, sql =>
            {
                if (!string.IsNullOrEmpty(appSettings.ConnectionStrings.MigrationsAssembly))
                {
                    sql.MigrationsAssembly(appSettings.ConnectionStrings.MigrationsAssembly);
                }
            }))
            .AddScoped <IRepository <EmailMessage, Guid>, Repository <EmailMessage, Guid> >()
            .AddScoped <IRepository <SmsMessage, Guid>, Repository <SmsMessage, Guid> >()
            .AddScoped(typeof(IEmailMessageRepository), typeof(EmailMessageRepository))
            .AddScoped(typeof(ISmsMessageRepository), typeof(SmsMessageRepository))
            .AddScoped <IEmailMessageService, EmailMessageService>();

            services
            .AddScoped <EmailMessageService>()
            .AddScoped <SmsMessageService>();

            DomainEvents.RegisterHandlers(Assembly.GetExecutingAssembly(), services);

            services.AddMessageHandlers(Assembly.GetExecutingAssembly());

            services.AddNotificationServices(appSettings.Notification);

            return(services);
        }
        public static IServiceCollection AddApplicationServices(this IServiceCollection services, Action <Type, Type, ServiceLifetime> configureInterceptor = null)
        {
            DomainEvents.RegisterHandlers(Assembly.GetExecutingAssembly(), services);

            services
            .AddSingleton <IDomainEvents, DomainEvents>()
            .AddScoped(typeof(ICrudService <>), typeof(CrudService <>))
            .AddScoped <IUserService, UserService>()
            .AddScoped <IProductService, ProductService>()
            .AddScoped <EmailMessageService>()
            .AddScoped <SmsMessageService>();

            if (configureInterceptor != null)
            {
                var aggregateRootTypes = typeof(AggregateRoot <>).Assembly.GetTypes().Where(x => x.BaseType == typeof(AggregateRoot <Guid>)).ToList();
                foreach (var type in aggregateRootTypes)
                {
                    configureInterceptor(typeof(ICrudService <>).MakeGenericType(type), typeof(CrudService <>).MakeGenericType(type), ServiceLifetime.Scoped);
                }

                configureInterceptor(typeof(IUserService), typeof(UserService), ServiceLifetime.Scoped);
                configureInterceptor(typeof(IProductService), typeof(ProductService), ServiceLifetime.Scoped);
            }

            return(services);
        }
        public static IServiceCollection AddProductModule(this IServiceCollection services, Action <ProductModuleOptions> configureOptions)
        {
            var settings = new ProductModuleOptions();

            configureOptions(settings);

            services.Configure(configureOptions);

            services.AddDbContext <ProductDbContext>(options => options.UseSqlServer(settings.ConnectionStrings.Default, sql =>
            {
                if (!string.IsNullOrEmpty(settings.ConnectionStrings.MigrationsAssembly))
                {
                    sql.MigrationsAssembly(settings.ConnectionStrings.MigrationsAssembly);
                }
            }));

            services
            .AddScoped <IRepository <Product, Guid>, Repository <Product, Guid> >()
            .AddScoped(typeof(IProductRepository), typeof(ProductRepository))
            .AddScoped <IRepository <AuditLogEntry, Guid>, Repository <AuditLogEntry, Guid> >()
            .AddScoped <IRepository <EventLog, long>, Repository <EventLog, long> >();

            DomainEvents.RegisterHandlers(Assembly.GetExecutingAssembly(), services);

            services.AddMessageHandlers(Assembly.GetExecutingAssembly());

            services.AddAuthorizationPolicies(Assembly.GetExecutingAssembly());

            services.AddScoped(typeof(ICsvReader <>), typeof(CsvReader <>));
            services.AddScoped(typeof(ICsvWriter <>), typeof(CsvWriter <>));

            return(services);
        }
Exemple #12
0
        public static IServiceCollection AddApplicationServices(this IServiceCollection services)
        {
            DomainEvents.RegisterHandlers(Assembly.GetExecutingAssembly());

            services
            .AddSingleton <IDomainEvents, DomainEvents>()
            .AddScoped(typeof(ICrudService <>), typeof(CrudService <>))
            .AddScoped <IUserService, UserService>()
            .AddScoped <IProductService, ProductService>();

            return(services);
        }
Exemple #13
0
        public static IServiceCollection AddStorageModule(this IServiceCollection services, string connectionString, string migrationsAssembly = "")
        {
            services.AddDbContext <StorageDbContext>(options => options.UseSqlServer(connectionString, sql =>
            {
                if (!string.IsNullOrEmpty(migrationsAssembly))
                {
                    sql.MigrationsAssembly(migrationsAssembly);
                }
            }))
            .AddScoped(typeof(IRepository <,>), typeof(Repository <,>))
            .AddScoped(typeof(ICrudService <>), typeof(CrudService <>));

            DomainEvents.RegisterHandlers(Assembly.GetExecutingAssembly(), services);

            services.AddMessageHandlers(Assembly.GetExecutingAssembly());

            return(services);
        }
Exemple #14
0
        public static IServiceCollection AddConfigurationModule(this IServiceCollection services, AppSettings appSettings)
        {
            services.AddDbContext <ConfigurationDbContext>(options => options.UseSqlServer(appSettings.ConnectionStrings.ClassifiedAds, sql =>
            {
                if (!string.IsNullOrEmpty(appSettings.ConnectionStrings.MigrationsAssembly))
                {
                    sql.MigrationsAssembly(appSettings.ConnectionStrings.MigrationsAssembly);
                }
            }))
            .AddScoped <IRepository <ConfigurationEntry, Guid>, Repository <ConfigurationEntry, Guid> >();

            DomainEvents.RegisterHandlers(Assembly.GetExecutingAssembly(), services);

            services.AddMessageHandlers(Assembly.GetExecutingAssembly());

            services.AddAuthorizationPolicies(Assembly.GetExecutingAssembly());

            return(services);
        }
        public static IServiceCollection AddStorageModule(this IServiceCollection services, StorageOptions storageOptions, MessageBrokerOptions messageBrokerOptions, string connectionString, string migrationsAssembly = "")
        {
            services.AddDbContext <StorageDbContext>(options => options.UseSqlServer(connectionString, sql =>
            {
                if (!string.IsNullOrEmpty(migrationsAssembly))
                {
                    sql.MigrationsAssembly(migrationsAssembly);
                }
            }))
            .AddScoped <IRepository <FileEntry, Guid>, Repository <FileEntry, Guid> >();

            DomainEvents.RegisterHandlers(Assembly.GetExecutingAssembly(), services);

            services.AddMessageHandlers(Assembly.GetExecutingAssembly());

            if (storageOptions.UsedAzure())
            {
                services.AddSingleton <IFileStorageManager>(new AzureBlobStorageManager(storageOptions.Azure.ConnectionString, storageOptions.Azure.Container));
            }
            else if (storageOptions.UsedAmazon())
            {
                services.AddSingleton <IFileStorageManager>(
                    new AmazonS3StorageManager(
                        storageOptions.Amazon.AccessKeyID,
                        storageOptions.Amazon.SecretAccessKey,
                        storageOptions.Amazon.BucketName,
                        storageOptions.Amazon.RegionEndpoint));
            }
            else if (storageOptions.UsedLocal())
            {
                services.AddSingleton <IFileStorageManager>(new LocalFileStorageManager(storageOptions.Local.Path));
            }
            else if (storageOptions.UsedFake())
            {
                services.AddSingleton <IFileStorageManager>(new FakeStorageManager());
            }

            services.AddMessageBusSender <FileUploadedEvent>(messageBrokerOptions);
            services.AddMessageBusSender <FileDeletedEvent>(messageBrokerOptions);

            return(services);
        }
        public static IServiceCollection AddNotificationModule(this IServiceCollection services, NotificationModuleOptions moduleOptions)
        {
            services.Configure <NotificationModuleOptions>(op =>
            {
                op.ConnectionStrings = moduleOptions.ConnectionStrings;
                op.MessageBroker     = moduleOptions.MessageBroker;
                op.Notification      = moduleOptions.Notification;
            });

            services
            .AddDbContext <NotificationDbContext>(options => options.UseSqlServer(moduleOptions.ConnectionStrings.Default, sql =>
            {
                if (!string.IsNullOrEmpty(moduleOptions.ConnectionStrings.MigrationsAssembly))
                {
                    sql.MigrationsAssembly(moduleOptions.ConnectionStrings.MigrationsAssembly);
                }
            }))
            .AddScoped <IRepository <EmailMessage, Guid>, Repository <EmailMessage, Guid> >()
            .AddScoped <IRepository <SmsMessage, Guid>, Repository <SmsMessage, Guid> >()
            .AddScoped(typeof(IEmailMessageRepository), typeof(EmailMessageRepository))
            .AddScoped(typeof(ISmsMessageRepository), typeof(SmsMessageRepository))
            .AddScoped <IEmailMessageService, EmailMessageService>();

            services
            .AddScoped <EmailMessageService>()
            .AddScoped <SmsMessageService>();

            DomainEvents.RegisterHandlers(Assembly.GetExecutingAssembly(), services);

            services.AddMessageHandlers(Assembly.GetExecutingAssembly());

            services
            .AddMessageBusSender <EmailMessageCreatedEvent>(moduleOptions.MessageBroker)
            .AddMessageBusSender <SmsMessageCreatedEvent>(moduleOptions.MessageBroker);

            services.AddNotificationServices(moduleOptions.Notification);

            return(services);
        }
        public static IServiceCollection AddStorageModule(this IServiceCollection services, StorageOptions storageOptions, MessageBrokerOptions messageBrokerOptions, string connectionString, string migrationsAssembly = "")
        {
            services.AddDbContext <StorageDbContext>(options => options.UseSqlServer(connectionString, sql =>
            {
                if (!string.IsNullOrEmpty(migrationsAssembly))
                {
                    sql.MigrationsAssembly(migrationsAssembly);
                }
            }))
            .AddScoped <IRepository <FileEntry, Guid>, Repository <FileEntry, Guid> >();

            DomainEvents.RegisterHandlers(Assembly.GetExecutingAssembly(), services);

            services.AddMessageHandlers(Assembly.GetExecutingAssembly());

            if (storageOptions.UsedAzure())
            {
                services.AddSingleton <IFileStorageManager>(new AzureBlobStorageManager(storageOptions.Azure.ConnectionString, storageOptions.Azure.Container));
            }
            else if (storageOptions.UsedAmazon())
            {
                services.AddSingleton <IFileStorageManager>(
                    new AmazonS3StorageManager(
                        storageOptions.Amazon.AccessKeyID,
                        storageOptions.Amazon.SecretAccessKey,
                        storageOptions.Amazon.BucketName,
                        storageOptions.Amazon.RegionEndpoint));
            }
            else
            {
                services.AddSingleton <IFileStorageManager>(new LocalFileStorageManager(storageOptions.Local.Path));
            }

            if (messageBrokerOptions.UsedRabbitMQ())
            {
                services.AddSingleton <IMessageSender <FileUploadedEvent> >(new RabbitMQSender <FileUploadedEvent>(new RabbitMQSenderOptions
                {
                    HostName     = messageBrokerOptions.RabbitMQ.HostName,
                    UserName     = messageBrokerOptions.RabbitMQ.UserName,
                    Password     = messageBrokerOptions.RabbitMQ.Password,
                    ExchangeName = messageBrokerOptions.RabbitMQ.ExchangeName,
                    RoutingKey   = messageBrokerOptions.RabbitMQ.RoutingKey_FileUploaded,
                }));

                services.AddSingleton <IMessageSender <FileDeletedEvent> >(new RabbitMQSender <FileDeletedEvent>(new RabbitMQSenderOptions
                {
                    HostName     = messageBrokerOptions.RabbitMQ.HostName,
                    UserName     = messageBrokerOptions.RabbitMQ.UserName,
                    Password     = messageBrokerOptions.RabbitMQ.Password,
                    ExchangeName = messageBrokerOptions.RabbitMQ.ExchangeName,
                    RoutingKey   = messageBrokerOptions.RabbitMQ.RoutingKey_FileDeleted,
                }));
            }
            else if (messageBrokerOptions.UsedKafka())
            {
                services.AddSingleton <IMessageSender <FileUploadedEvent> >(new KafkaSender <FileUploadedEvent>(
                                                                                messageBrokerOptions.Kafka.BootstrapServers,
                                                                                messageBrokerOptions.Kafka.Topic_FileUploaded));

                services.AddSingleton <IMessageSender <FileDeletedEvent> >(new KafkaSender <FileDeletedEvent>(
                                                                               messageBrokerOptions.Kafka.BootstrapServers,
                                                                               messageBrokerOptions.Kafka.Topic_FileDeleted));
            }
            else if (messageBrokerOptions.UsedAzureQueue())
            {
                services.AddSingleton <IMessageSender <FileUploadedEvent> >(new AzureQueueSender <FileUploadedEvent>(
                                                                                connectionString: messageBrokerOptions.AzureQueue.ConnectionString,
                                                                                queueName: messageBrokerOptions.AzureQueue.QueueName_FileUploaded));

                services.AddSingleton <IMessageSender <FileDeletedEvent> >(new AzureQueueSender <FileDeletedEvent>(
                                                                               connectionString: messageBrokerOptions.AzureQueue.ConnectionString,
                                                                               queueName: messageBrokerOptions.AzureQueue.QueueName_FileDeleted));
            }
            else if (messageBrokerOptions.UsedAzureServiceBus())
            {
                services.AddSingleton <IMessageSender <FileUploadedEvent> >(new AzureServiceBusSender <FileUploadedEvent>(
                                                                                connectionString: messageBrokerOptions.AzureServiceBus.ConnectionString,
                                                                                queueName: messageBrokerOptions.AzureServiceBus.QueueName_FileUploaded));

                services.AddSingleton <IMessageSender <FileDeletedEvent> >(new AzureServiceBusSender <FileDeletedEvent>(
                                                                               connectionString: messageBrokerOptions.AzureServiceBus.ConnectionString,
                                                                               queueName: messageBrokerOptions.AzureServiceBus.QueueName_FileDeleted));
            }
            else if (messageBrokerOptions.UsedAzureEventGrid())
            {
                services.AddSingleton <IMessageSender <FileUploadedEvent> >(new AzureEventGridSender <FileUploadedEvent>(
                                                                                messageBrokerOptions.AzureEventGrid.DomainEndpoint,
                                                                                messageBrokerOptions.AzureEventGrid.DomainKey,
                                                                                messageBrokerOptions.AzureEventGrid.Topic_FileUploaded));

                services.AddSingleton <IMessageSender <FileDeletedEvent> >(new AzureEventGridSender <FileDeletedEvent>(
                                                                               messageBrokerOptions.AzureEventGrid.DomainEndpoint,
                                                                               messageBrokerOptions.AzureEventGrid.DomainKey,
                                                                               messageBrokerOptions.AzureEventGrid.Topic_FileDeleted));
            }
            else if (messageBrokerOptions.UsedAzureEventHub())
            {
                services.AddSingleton <IMessageSender <FileUploadedEvent> >(new AzureEventHubSender <FileUploadedEvent>(
                                                                                messageBrokerOptions.AzureEventHub.ConnectionString,
                                                                                messageBrokerOptions.AzureEventHub.Hub_FileUploaded));

                services.AddSingleton <IMessageSender <FileDeletedEvent> >(new AzureEventHubSender <FileDeletedEvent>(
                                                                               messageBrokerOptions.AzureEventHub.ConnectionString,
                                                                               messageBrokerOptions.AzureEventHub.Hub_FileDeleted));
            }

            return(services);
        }
Exemple #18
0
 public static void RegisterDomainEventHandlers(this IServiceProvider serviceProvider)
 {
     DomainEvents.RegisterHandlers(Assembly.GetExecutingAssembly(), serviceProvider);
 }