Пример #1
0
 public NotificationHubPushRegistrationService(
     IInstallationDeviceRepository installationDeviceRepository,
     GlobalSettings globalSettings)
 {
     _installationDeviceRepository = installationDeviceRepository;
     _globalSettings = globalSettings;
     _client         = NotificationHubClient.CreateClientFromConnectionString(
         _globalSettings.NotificationHub.ConnectionString,
         _globalSettings.NotificationHub.HubName);
 }
Пример #2
0
 public NotificationHubPushNotificationService(
     IInstallationDeviceRepository installationDeviceRepository,
     GlobalSettings globalSettings,
     IHttpContextAccessor httpContextAccessor)
 {
     _installationDeviceRepository = installationDeviceRepository;
     _globalSettings      = globalSettings;
     _httpContextAccessor = httpContextAccessor;
     _client = NotificationHubClient.CreateClientFromConnectionString(
         _globalSettings.NotificationHub.ConnectionString,
         _globalSettings.NotificationHub.HubName);
 }
        public MultiServicePushNotificationServiceTests()
        {
            _deviceRepository             = Substitute.For <IDeviceRepository>();
            _installationDeviceRepository = Substitute.For <IInstallationDeviceRepository>();
            _globalSettings      = new GlobalSettings();
            _httpContextAccessor = Substitute.For <IHttpContextAccessor>();
            _logger    = Substitute.For <ILogger <MultiServicePushNotificationService> >();
            _hubLogger = Substitute.For <ILogger <NotificationsApiPushNotificationService> >();

            _sut = new MultiServicePushNotificationService(
                _deviceRepository,
                _installationDeviceRepository,
                _globalSettings,
                _httpContextAccessor,
                _logger,
                _hubLogger
                );
        }
        public MultiServicePushNotificationService(
            IHttpClientFactory httpFactory,
            IDeviceRepository deviceRepository,
            IInstallationDeviceRepository installationDeviceRepository,
            GlobalSettings globalSettings,
            IHttpContextAccessor httpContextAccessor,
            ILogger <MultiServicePushNotificationService> logger,
            ILogger <RelayPushNotificationService> relayLogger,
            ILogger <NotificationsApiPushNotificationService> hubLogger)
        {
            if (globalSettings.SelfHosted)
            {
                if (CoreHelpers.SettingHasValue(globalSettings.PushRelayBaseUri) &&
                    globalSettings.Installation?.Id != null &&
                    CoreHelpers.SettingHasValue(globalSettings.Installation?.Key))
                {
                    _services.Add(new RelayPushNotificationService(httpFactory, deviceRepository, globalSettings,
                                                                   httpContextAccessor, relayLogger));
                }
                if (CoreHelpers.SettingHasValue(globalSettings.InternalIdentityKey) &&
                    CoreHelpers.SettingHasValue(globalSettings.BaseServiceUri.InternalNotifications))
                {
                    _services.Add(new NotificationsApiPushNotificationService(
                                      httpFactory, globalSettings, httpContextAccessor, hubLogger));
                }
            }
            else
            {
                if (CoreHelpers.SettingHasValue(globalSettings.NotificationHub.ConnectionString))
                {
                    _services.Add(new NotificationHubPushNotificationService(installationDeviceRepository,
                                                                             globalSettings, httpContextAccessor));
                }
                if (CoreHelpers.SettingHasValue(globalSettings.Notifications?.ConnectionString))
                {
                    _services.Add(new AzureQueuePushNotificationService(globalSettings, httpContextAccessor));
                }
            }

            _logger = logger;
        }