public static void SendNotification(PushSubscriptionInformation subscription, string message)
        {
            var pushClient   = new WebPushClient();
            var vapidDetails = new VapidDetails(VAPIDConfiguration.Subject, VAPIDConfiguration.PublicKey, VAPIDConfiguration.PrivateKey);

            pushClient.SetVapidDetails(vapidDetails);
            var pushSubscription = new PushSubscription(subscription.EndPoint, subscription.Keys.p256dh, subscription.Keys.Authentication);

            pushClient.SendNotification(pushSubscription, JsonConvert.SerializeObject(new RootNotification(message)));
        }
        public void Initialize()
        {
            log = NullLoggerFactory.Instance.CreateLogger("Dummy");

            sub                     = new PushSubscriptionInformation();
            sub.EndPoint            = "https://dummy_endpoint";
            sub.ExpirationTime      = null;
            sub.Keys                = new Keys();
            sub.Keys.Authentication = "dummy_authentication";
            sub.Keys.p256dh         = "dummy_p256dh";

            Environment.SetEnvironmentVariable("DatabaseId", TestContext.Properties["DatabaseId"].ToString(), EnvironmentVariableTarget.Process);
            Environment.SetEnvironmentVariable("CollectionId", TestContext.Properties["CollectionId"].ToString(), EnvironmentVariableTarget.Process);

            client = new DocumentClient(new Uri(TestContext.Properties["AccountEndpoint"].ToString()), TestContext.Properties["AccountKey"].ToString());
            DocumentDBRepository <PushSubscriptionInformation> .Initialize(client);
        }
Example #3
0
        public async Task Subscribe(PushSubscriptionInformation subscription)
        {
            if (await DocumentDBRepository <PushSubscriptionInformation> .GetItemAsync(subscription.Id) == null)
            {
                await DocumentDBRepository <PushSubscriptionInformation> .CreateItemAsync(subscription);
            }

            var allSubscriptions = await DocumentDBRepository <PushSubscriptionInformation> .GetItemsAsync(s => s.EndPoint != null);

            foreach (PushSubscriptionInformation sub in allSubscriptions)
            {
                var notificationQueueItem = new NotificationQueueItem();
                notificationQueueItem.subscription = sub;
                notificationQueueItem.message      = $"{allSubscriptions.Count()} Subscriptions for Application";
                await notificationQueueService.Insert(notificationQueueItem);
            }
        }
Example #4
0
        public void Initialize()
        {
            log = NullLoggerFactory.Instance.CreateLogger("Dummy");

            sub                     = new PushSubscriptionInformation();
            sub.EndPoint            = "https://dummy_endpoint";
            sub.ExpirationTime      = null;
            sub.Keys                = new Keys();
            sub.Keys.Authentication = "dummy_authentication";
            sub.Keys.p256dh         = "dummy_p256dh";

            Environment.SetEnvironmentVariable("DatabaseId", TestContext.Properties["DatabaseId"].ToString(), EnvironmentVariableTarget.Process);
            Environment.SetEnvironmentVariable("CollectionId", TestContext.Properties["CollectionId"].ToString(), EnvironmentVariableTarget.Process);
            Environment.SetEnvironmentVariable("AzureWebJobsStorage", TestContext.Properties["AzureWebJobsStorage"].ToString(), EnvironmentVariableTarget.Process);

            client = new DocumentClient(new Uri(TestContext.Properties["AccountEndpoint"].ToString()), TestContext.Properties["AccountKey"].ToString());
            notificationQueueService     = new NotificationQueueService();
            subscriptionService          = new SubscriptionService(notificationQueueService);
            subscriptionTriggerSubscribe = new SubscriptionTriggerSubscribe(subscriptionService);
        }