コード例 #1
0
        public static StoreObjectId OptUserIn(MailboxSession session, VariantConfigurationSnapshot snapshot, IFrontEndLocator frontEndLocator)
        {
            snapshot = ClutterUtilities.LoadSnapshotIfNeeded(session, snapshot);
            StoreObjectId storeObjectId = null;

            if (!session.Mailbox.GetValueOrDefault <bool>(MailboxSchema.InferenceClutterEnabled, false) || !session.Mailbox.GetValueOrDefault <bool>(MailboxSchema.InferenceClassificationEnabled, false))
            {
                using (MailboxSession mailboxSession = ClutterUtilities.OpenAdminSession(session))
                {
                    StoreObjectId storeObjectId2 = ClutterUtilities.SetClassificationEnabled(mailboxSession, true);
                    ClutterUtilities.AddClutterToFavorite(session);
                    ClutterUtilities.VerifyReadyVersionInCrumb(mailboxSession);
                    storeObjectId = session.RefreshDefaultFolder(DefaultFolderType.Clutter);
                    ClutterUtilities.RefreshInferenceProperties(session, true);
                    using (NotificationManager notificationManager = new NotificationManager(session, snapshot, frontEndLocator))
                    {
                        notificationManager.SendNotification(ClutterNotificationType.OptedIn, DefaultFolderType.Inbox);
                        notificationManager.ScheduleNotification(ClutterNotificationType.FirstReminder, 5, DayOfWeek.Monday);
                        notificationManager.CancelScheduledNotification(ClutterNotificationType.AutoEnablementNotice);
                        notificationManager.Save();
                    }
                    ExAssert.RetailAssert(mailboxSession.Mailbox.GetValueOrDefault <bool>(MailboxSchema.InferenceClutterEnabled, false), "InferenceClutterEnabled should have been set to true in admin session");
                    ExAssert.RetailAssert(mailboxSession.Mailbox.GetValueOrDefault <bool>(MailboxSchema.InferenceClassificationEnabled, false), "InferenceClassificationEnabled should have been set to true in admin session");
                    ExAssert.RetailAssert(storeObjectId2 != null, "Clutter folder id created in admin session should not be null");
                    ExAssert.RetailAssert(storeObjectId2.Equals(storeObjectId), "Clutter folder id created in admin session should equal the id created by refreshing the user session");
                    goto IL_FD;
                }
            }
            storeObjectId = ClutterUtilities.ValidateClutterFolder(session);
IL_FD:
            ExAssert.RetailAssert(session.Mailbox.GetValueOrDefault <bool>(MailboxSchema.InferenceClutterEnabled, false), "InferenceClutterEnabled should have been set to true in user session");
            ExAssert.RetailAssert(session.Mailbox.GetValueOrDefault <bool>(MailboxSchema.InferenceClassificationEnabled, false), "InferenceClassificationEnabled should have been set to true in user session");
            ExAssert.RetailAssert(storeObjectId != null, "Clutter folder could not be created");
            return(storeObjectId);
        }
コード例 #2
0
 private static void RefreshDefaultFolderWithRetry(MailboxSession mailboxSession, DefaultFolderType folderType)
 {
     for (int i = 0; i < 2; i++)
     {
         try
         {
             mailboxSession.RefreshDefaultFolder(folderType);
             return;
         }
         catch (StorageTransientException arg)
         {
             ContactLink.Tracer.TraceError <StorageTransientException>(0L, "AutomaticLink.RefreshDefaultFolderWithRetry: retry due MailboxSession.RefreshDefaultFolder() failed with exception: {0} .", arg);
         }
     }
     mailboxSession.RefreshDefaultFolder(folderType);
 }
コード例 #3
0
        public static void DeleteBirthdayCalendar(MailboxSession session)
        {
            ExTraceGlobals.BirthdayCalendarTracer.TraceDebug <Guid>(0L, "BirthdayCalendar::DeleteBirthdayCalendar. MailboxGuid:{0}", session.MailboxGuid);
            StoreObjectId storeObjectId = session.RefreshDefaultFolder(DefaultFolderType.BirthdayCalendar);

            ExTraceGlobals.BirthdayCalendarTracer.TraceDebug <Guid, StoreObjectId>(0L, "BirthdayCalendar::DeleteBirthdayCalendar. RefreshDefaultFolder. MailboxGuid:{0}. FolderId: {1}", session.MailboxGuid, storeObjectId);
            if (storeObjectId == null)
            {
                ExTraceGlobals.BirthdayCalendarTracer.TraceDebug <Guid>(0L, "BirthdayCalendar::DeleteBirthdayCalendar. Folder doesn't exist. MailboxGuid:{0}", session.MailboxGuid);
                return;
            }
            try
            {
                ExTraceGlobals.BirthdayCalendarTracer.TraceDebug <Guid>(0L, "BirthdayCalendar::DeleteBirthdayCalendar. Perform default folder delete. MailboxGuid:{0}", session.MailboxGuid);
                session.DeleteDefaultFolder(DefaultFolderType.BirthdayCalendar, DeleteItemFlags.HardDelete);
            }
            catch (Exception ex)
            {
                ExTraceGlobals.BirthdayCalendarTracer.TraceError <Exception, string, Guid>(0L, "BirthdayCalendar::DeleteBirthdayCalendar. Unable to delete folder. Exception: {0}. Stack: {1}. MailboxGuid:{2}", ex, ex.StackTrace, session.MailboxGuid);
                throw;
            }
        }