// Token: 0x0600143E RID: 5182 RVA: 0x00074D24 File Offset: 0x00072F24 internal static void LogInvalidSubscription(Guid mailboxGuid, PushNotificationSubscription subscription) { string text = subscription.ToFullString(); PushNotificationsCrimsonEvents.InvalidSubscriptionInMailbox.LogPeriodic <Guid, string>(text, CrimsonConstants.DefaultLogPeriodicSuppressionInMinutes, mailboxGuid, text); ExTraceGlobals.PushNotificationAssistantTracer.TraceWarning <string, Guid>(0L, "An invalid notification was detected in mailbox '{0}': '{1}'.", text, mailboxGuid); }
public async Task <IActionResult> Create([FromBody] PushNotificationSubscription subscription) { var pushSubscription = new PushSubscription(subscription.Endpoint, subscription.Key, subscription.AuthSecret); var vapidDetails = new VapidDetails(_vapidSettings.Subject, _vapidSettings.PublicKey, _vapidSettings.PrivateKey); var webPushClient = new WebPushClient(); webPushClient.SetVapidDetails(vapidDetails); //TODO; store pushsubscription for later use _pushSubscription = pushSubscription; _vapidDetails = vapidDetails; // send notification var payload = new PushNotificationPayload { Msg = "Thank you for subscribing", Icon = "[URL to an image to display in the notification]" }; try { await webPushClient.SendNotificationAsync(pushSubscription, JsonConvert.SerializeObject(payload), vapidDetails); } catch (WebPushException exception) { var statusCode = exception.StatusCode; return(new StatusCodeResult((int)statusCode)); } return(new OkResult()); }
public PushNotificationServerSubscription(PushNotificationSubscription subscription, DateTime lastUpdated, string installationId) { base.AppId = subscription.AppId; base.DeviceNotificationId = subscription.DeviceNotificationId; base.DeviceNotificationType = subscription.DeviceNotificationType; base.InboxUnreadCount = subscription.InboxUnreadCount; this.LastSubscriptionUpdate = lastUpdated; base.SubscriptionOption = subscription.SubscriptionOption; this.InstallationId = installationId; }
public void Add(PushNotificationSubscription pushSubscription) { if (_subscriptions.Any(x => x.P256DH == pushSubscription.Key && x.Auth == pushSubscription.AuthSecret)) { return; } var subscription = new PushSubscription(pushSubscription.Endpoint, pushSubscription.Key, pushSubscription.AuthSecret); _subscriptions.Add(subscription); }
public async Task DeleteSubscription(PushNotificationSubscription subscriptionToDelete) { var uri = UriFactory.CreateDocumentCollectionUri(_cosmosConfig.DefaultDb, _cosmosConfig.SubscribersCollection); var queryString = $"SELECT * FROM c WHERE c.Endpoint = \"{subscriptionToDelete.Endpoint}\""; var currentDoc = _client.CreateDocumentQuery <Document>(uri, queryString, new FeedOptions { MaxItemCount = 1 }) .ToList() .FirstOrDefault(); if (currentDoc != null) { await _client.DeleteDocumentAsync(currentDoc.SelfLink); } }
// Token: 0x0600141D RID: 5149 RVA: 0x000741BC File Offset: 0x000723BC internal void UpdateSubscriptionData(Guid mailboxGuid, PushNotificationSubscription subscriptionContract) { PushNotificationSubscriptionOption subscriptionOption = subscriptionContract.GetSubscriptionOption(); this.subscribedMailboxes.AddOrUpdate(mailboxGuid, (byte)subscriptionOption, (Guid key, byte oldValue) => (byte)subscriptionOption); if (subscriptionContract.InboxUnreadCount != null && subscriptionContract.InboxUnreadCount > 0L) { CachedState cachedState = AssistantsService.CachedObjectsList.GetCachedState(mailboxGuid); using (new PushNotificationDataHandler.CachedStateReadLock(cachedState)) { MailboxData mailboxData = (MailboxData)cachedState.State[9]; if (mailboxData != null) { using (new PushNotificationDataHandler.CachedStateUpgradeWriteLock(cachedState)) { mailboxData.InboxUnreadCount = subscriptionContract.InboxUnreadCount.Value; } } } } }
public async Task <(bool, int)> AddNewSubscriber(PushNotificationSubscription newSubscription, string baseUrl) { var pushSub = new PushSubscription(newSubscription.Endpoint, newSubscription.Key, newSubscription.AuthSecret); await SavePushSubscription(pushSub); var payload = new PushNotificationPayload { Msg = "Thank you for subscribing", Icon = GetIconUrl(baseUrl) }; try { await _pushClient.SendNotificationAsync(pushSub, JsonConvert.SerializeObject(payload)); return(true, 200); } catch (WebPushException wpe) { return(false, (int)wpe.StatusCode); } }
// Token: 0x06001403 RID: 5123 RVA: 0x00073F6C File Offset: 0x0007216C private bool IsSubscriptionSuitable(PushNotificationSubscription subscription) { return(subscription.Platform.SupportsSubscriptions() && !string.IsNullOrWhiteSpace(subscription.AppId) && !string.IsNullOrWhiteSpace(subscription.DeviceNotificationId)); }
public IActionResult CreateNotification([FromBody] PushNotificationSubscription pushSubscription) { _pushSusbscriptions.Add(pushSubscription); return(NoContent()); }
public async Task <IActionResult> DeleteSubscription([FromBody] PushNotificationSubscription subscription) { await _pushNotifcationService.DeleteSubscription(subscription); return(new OkResult()); }
public async Task <IActionResult> Create([FromBody] PushNotificationSubscription subscription) { var result = await _pushNotifcationService.AddNewSubscriber(subscription, Request.GetBaseUrl()); return(!result.Item1 ? new StatusCodeResult(result.Item2) : new OkResult()); }
public void UpdateSubscriptionOnMailboxTable(IMailboxSession session, PushNotificationSubscription subscription) { this.UpdateSubscriptionOnMailboxTable(session, subscription.GetSubscriptionOption()); }
// Token: 0x0600143F RID: 5183 RVA: 0x00074D5E File Offset: 0x00072F5E internal static void LogSuppressedNotifications(Guid mailboxGuid, PushNotificationSubscription subscription) { PushNotificationsCrimsonEvents.SuppressedNotificationsWhileOof.Log <string, Guid, string>(subscription.AppId, mailboxGuid, subscription.DeviceNotificationId); ExTraceGlobals.PushNotificationAssistantTracer.TraceDebug <string, Guid, string>(0L, "A notification was skipped because user is OOF. AppId - '{0}', Mailbox - '{1}', DeviceId - '{2}'", subscription.AppId, mailboxGuid, subscription.DeviceNotificationId); }