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