internal StoreObjectId CreateDefaultSystemFolder()
        {
            DefaultFolder defaultFolder = this.GetDefaultFolder(DefaultFolderType.System);

            defaultFolder.Create();
            StoreObjectId result;

            if (!defaultFolder.TryGetFolderId(out result))
            {
                throw new AccessDeniedException(ServerStrings.DefaultFolderAccessDenied(defaultFolder.ToString()));
            }
            return(result);
        }
        internal StoreObjectId CreateDefaultFolder(DefaultFolderType defaultFolderType)
        {
            EnumValidator.ThrowIfInvalid <DefaultFolderType>(defaultFolderType, DefaultFolderManager.validFolderTypesForCreateDefaultFolder);
            DefaultFolder defaultFolder = this.GetDefaultFolder(defaultFolderType);

            defaultFolder.Create();
            StoreObjectId result;

            if (!defaultFolder.TryGetFolderId(out result))
            {
                throw new AccessDeniedException(ServerStrings.DefaultFolderAccessDenied(defaultFolder.ToString()));
            }
            return(result);
        }
        internal bool TryFixDefaultFolderId(DefaultFolderType defaultFolderType, out StoreObjectId id)
        {
            EnumValidator.ThrowIfInvalid <DefaultFolderType>(defaultFolderType);
            DefaultFolder defaultFolder = this.GetDefaultFolder(defaultFolderType);

            try
            {
                defaultFolder.RemoveForRecover();
                defaultFolder.Create();
            }
            catch (ObjectNotFoundException)
            {
                id = null;
                return(false);
            }
            catch (NotSupportedException)
            {
                id = null;
                return(false);
            }
            return(defaultFolder.TryGetFolderId(out id));
        }