Пример #1
0
        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);
            }
        }
Пример #2
0
 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));
 }
Пример #3
0
 internal DefaultFolder(DefaultFolderContext context, DefaultFolderInfo defaultFolderInfo, MailboxSessionSharableDataManager sharableDataManager, DefaultFolderType defaultFolderType, bool deferInitialize) : this(context, defaultFolderInfo, context.Session.InternalPreferedCulture, sharableDataManager, defaultFolderType, deferInitialize, false)
 {
 }