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(); }
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); }