internal DefaultFolder(DefaultFolderContext context, DefaultFolderInfo defaultFolderInfo, CultureInfo cultureInfo, MailboxSessionSharableDataManager sharableDataManager, DefaultFolderType defaultFolderType, bool deferInitialize, bool forceInitialize) { bool flag = (defaultFolderInfo.Behavior & DefaultFolderBehavior.AlwaysDeferInitialization) == DefaultFolderBehavior.AlwaysDeferInitialization; this.sharableDataManager = sharableDataManager; this.defaultFolderType = defaultFolderType; this.defaultFolderInfo = defaultFolderInfo; this.context = context; this.cultureInfo = cultureInfo; DefaultFolderData defaultFolderData = this.GetDefaultFolderData(); DefaultFolderData defaultFolderData2 = defaultFolderData ?? new DefaultFolderData(false); if (!this.context.DeferFolderIdInit && !defaultFolderData2.IdInitialized) { defaultFolderData2 = this.InitializeFolderIdPrivate(); } if (forceInitialize || (!flag && !deferInitialize)) { this.InitializeDefaultFolderIfNeeded(ref defaultFolderData2); if (this.GetDefaultFolderData().FolderId == null) { ExTraceGlobals.DefaultFoldersTracer.TraceDebug <DefaultFolderInfo>((long)this.GetHashCode(), "DefaultFolder::Ctor. Cannot find the Id of the DefaultFolder. DefaultFolder = {0}.", this.defaultFolderInfo); } } if (defaultFolderData != defaultFolderData2) { this.SetDefaultFolderData(defaultFolderData2); } }
internal static StoreObjectId ValidateClutterFolder(MailboxSession session, bool checkNameClash, out bool hadUserFolderWithNameClash) { hadUserFolderWithNameClash = false; if (checkNameClash && session.GetDefaultFolderId(DefaultFolderType.Clutter) == null) { using (Folder folder = Folder.Bind(session, DefaultFolderType.Root)) { CultureInfo formatProvider = session.MailboxOwner.PreferredCultures.DefaultIfEmpty(session.InternalPreferedCulture).First <CultureInfo>(); DefaultFolderInfo defaultFolderInfo = DefaultFolderInfo.Instance[68]; string childFolderName = defaultFolderInfo.LocalizableDisplayName.ToString(formatProvider); if (folder.FindChildFolderByName(childFolderName) != null) { hadUserFolderWithNameClash = true; } } } return(ClutterUtilities.ValidateClutterFolder(session)); }
internal DefaultFolder(DefaultFolderContext context, DefaultFolderInfo defaultFolderInfo, MailboxSessionSharableDataManager sharableDataManager, DefaultFolderType defaultFolderType, bool deferInitialize) : this(context, defaultFolderInfo, context.Session.InternalPreferedCulture, sharableDataManager, defaultFolderType, deferInitialize, false) { }