Пример #1
0
        public FcmNotificationService(FcmAppSettings fcmAppSettings, IUserDeviceRepository userDeviceRepository)
        {
            this._fcmAppSettings       = fcmAppSettings;
            this._userDeviceRepository = userDeviceRepository;

            this._httpClient = new HttpClient();
            this._httpClient.DefaultRequestHeaders.Accept.Clear();
            this._httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            this._httpClient.DefaultRequestHeaders.Authorization =
                new AuthenticationHeaderValue("key", this._fcmAppSettings.GoogleServerKey);
        }
        static void Main(string[] args)
        {
            #region Setup Configuration
            var builder = new ConfigurationBuilder()
                          .SetBasePath(Directory.GetCurrentDirectory())
                          .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
                          .AddEnvironmentVariables();
            IConfigurationRoot configuration = builder.Build();

            var azureServiceBusSettings = new AzureServiceBusSettings();
            configuration.GetSection(nameof(AzureServiceBusSettings)).Bind(azureServiceBusSettings);

            var mongoDBSettings = new MongoDBSettings();
            configuration.GetSection(nameof(MongoDBSettings)).Bind(mongoDBSettings);

            FcmAppSettings fcmAppSettings = new FcmAppSettings();
            configuration.GetSection(nameof(FcmAppSettings)).Bind(fcmAppSettings);

            // Required by WebJobs SDK
            Environment.SetEnvironmentVariable("AzureWebJobsStorage", configuration.GetValue <string>("AzureWebJobsStorage"));
            Environment.SetEnvironmentVariable("AzureWebJobsDashboard", configuration.GetValue <string>("AzureWebJobsDashboard"));
            #endregion

            #region Setup DI
            var serviceCollection = new ServiceCollection();

            // EventBus
            serviceCollection.AddSingleton(azureServiceBusSettings);

            serviceCollection.AddSingleton <IEventBusMessageListener, EventBusServiceBusMessageListener>();
            serviceCollection.AddTransient <IEventBusMessageProcessor, OrchestratorEventBusServiceBusMessageProcessor>();
            serviceCollection.AddSingleton <IEventBusMessagePublisher, EventBusServiceBusMessagePublisher>();

            // DB
            serviceCollection.AddSingleton(mongoDBSettings);
            serviceCollection.AddSingleton <IResponseRepository, ResponseRepository>();

            // Notification
            serviceCollection.AddSingleton(fcmAppSettings);
            serviceCollection.AddSingleton <INotificationService, FcmNotificationService>();

            // Event Handlers
            // None for Notification

            var serviceProvider = serviceCollection.BuildServiceProvider();
            #endregion

            // Start listening for Events
            serviceProvider.GetService <IEventBusMessageListener>().RegisterEventListener();

            var host = new JobHost();
            host.RunAndBlock();
        }
Пример #3
0
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;

            this.azureServiceBusSettings = new AzureServiceBusSettings();
            Configuration.GetSection(nameof(AzureServiceBusSettings)).Bind(azureServiceBusSettings);
            this.mongoDBSettings = new MongoDBSettings();
            Configuration.GetSection(nameof(MongoDBSettings)).Bind(mongoDBSettings);
            this.fcmAppSettings = new FcmAppSettings();
            Configuration.GetSection(nameof(FcmAppSettings)).Bind(fcmAppSettings);
            this.authenticationSettings = new AuthenticationSettings();
            Configuration.GetSection(nameof(AuthenticationSettings)).Bind(authenticationSettings);
        }