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