Exemple #1
0
        internal static object DeviceNotificationTypeGetter(IPropertyBag propertyBag)
        {
            PushNotificationServerSubscription pushNotificationServerSubscription = PushNotificationSubscription.DeserializedSubscriptionGetter(propertyBag);

            if (pushNotificationServerSubscription != null)
            {
                return(pushNotificationServerSubscription.DeviceNotificationType);
            }
            return(null);
        }
        // Token: 0x060013D5 RID: 5077 RVA: 0x000735A0 File Offset: 0x000717A0
        private void HandleSubscriptionChangeEvent(IMailboxSession session, IStoreObject item)
        {
            IPushNotificationSubscriptionItem pushNotificationSubscriptionItem = item as IPushNotificationSubscriptionItem;

            if (pushNotificationSubscriptionItem == null)
            {
                throw new InvalidStoreObjectInstanceException((item != null) ? item.GetType() : null);
            }
            try
            {
                PushNotificationServerSubscription pushNotificationServerSubscription = PushNotificationServerSubscription.FromJson(pushNotificationSubscriptionItem.SerializedNotificationSubscription);
                this.assistantCache.UpdateSubscriptionData(session.MailboxGuid, pushNotificationServerSubscription);
                if (pushNotificationServerSubscription.GetSubscriptionOption() == this.MailboxTable.ReadSubscriptionOnMailboxTable(session))
                {
                    ExTraceGlobals.PushNotificationAssistantTracer.TraceDebug <Guid>((long)this.GetHashCode(), "PushNotificationAssistantAdapter.HandleSubscriptionChangeEvent: Mailbox Header Table is up to date for {0}.", session.MailboxGuid);
                    PushNotificationsAssistantPerfCounters.TotalSubscriptionsUpdated.Increment();
                }
                else
                {
                    this.MailboxTable.UpdateSubscriptionOnMailboxTable(session, pushNotificationServerSubscription);
                    PushNotificationHelper.LogSubscriptionUpdated(pushNotificationSubscriptionItem, pushNotificationServerSubscription, session.MailboxGuid);
                    PushNotificationsAssistantPerfCounters.TotalNewSubscriptionsCreated.Increment();
                    PushNotificationsAssistantPerfCounters.CurrentActiveUserSubscriptions.Increment();
                }
            }
            catch (Exception ex)
            {
                Globals.Logger.LogEvent(InfoWorkerEventLogConstants.Tuple_FailedToUpdateSubscriptionOnMailboxTable, ex.ToString(), new object[]
                {
                    pushNotificationSubscriptionItem.SerializedNotificationSubscription,
                    session.MailboxGuid,
                    ex.ToTraceString()
                });
                throw;
            }
        }
Exemple #3
0
 // Token: 0x06001435 RID: 5173 RVA: 0x00074A68 File Offset: 0x00072C68
 internal static void LogSubscriptionUpdated(IPushNotificationSubscriptionItem subscription, PushNotificationServerSubscription subscriptionContract, Guid mailboxGuid)
 {
     PushNotificationsCrimsonEvents.SubscriptionCreated.Log <string, string, Guid, string>(subscription.SubscriptionId, subscriptionContract.AppId, mailboxGuid, subscription.SerializedNotificationSubscription);
     ExTraceGlobals.PushNotificationAssistantTracer.TraceDebug <Guid, byte>(0L, "Mailbox Header Table updated for {0} with new Subscription type {1}.", mailboxGuid, (byte)subscriptionContract.GetSubscriptionOption());
 }
Exemple #4
0
 internal PushNotificationSubscription(ADObjectId userId, VersionedId versionId, string subscriptionId, string serializedSubscription) : base(new SimpleProviderPropertyBag())
 {
     this.propertyBag.SetField(PushNotificationSubscriptionSchema.SubscriptionId, subscriptionId);
     if (versionId != null && userId != null)
     {
         this.propertyBag.SetField(PushNotificationSubscriptionSchema.SubscriptionStoreId, new PushNotificationStoreId(userId, versionId.ObjectId, this.SubscriptionId));
     }
     try
     {
         this.propertyBag.SetField(PushNotificationSubscriptionSchema.DeserializedSubscription, PushNotificationServerSubscription.FromJson(serializedSubscription));
     }
     catch (SerializationException ex)
     {
         this.SerializationError = new PropertyValidationError(Strings.ErrorDeserializingSubscription(serializedSubscription, ex.Message), PushNotificationSubscriptionSchema.DeserializedSubscription, serializedSubscription);
     }
     this.propertyBag.ResetChangeTracking();
 }
Exemple #5
0
        internal static object InboxUnreadCountGetter(IPropertyBag propertyBag)
        {
            PushNotificationServerSubscription pushNotificationServerSubscription = PushNotificationSubscription.DeserializedSubscriptionGetter(propertyBag);

            return((pushNotificationServerSubscription == null) ? null : pushNotificationServerSubscription.InboxUnreadCount);
        }
Exemple #6
0
        internal static object LastSubscriptionUpdateGetter(IPropertyBag propertyBag)
        {
            PushNotificationServerSubscription pushNotificationServerSubscription = PushNotificationSubscription.DeserializedSubscriptionGetter(propertyBag);

            return((pushNotificationServerSubscription == null) ? null : new DateTime?(pushNotificationServerSubscription.LastSubscriptionUpdate));
        }