示例#1
0
        internal void Save()
        {
            FolderSaveResult folderSaveResult = ((CoreMailboxObject)base.CoreObject).Save();

            if (folderSaveResult.OperationResult != OperationResult.Succeeded)
            {
                throw folderSaveResult.ToException(ServerStrings.ErrorFolderSave(base.CoreObject.Id.ObjectId.ToString(), folderSaveResult.ToString()));
            }
        }
示例#2
0
        public static void SaveWithUniqueDisplayName(this IFolder folder, int maxSuffix = 50)
        {
            IStoreSession      session      = folder.Session;
            IExchangePrincipal mailboxOwner = session.MailboxOwner;
            string             displayName  = folder.DisplayName;
            string             text         = displayName;
            int num = 1;

            try
            {
IL_1A:
                FolderSaveResult folderSaveResult = folder.Save();
                if (folderSaveResult.OperationResult != OperationResult.Succeeded)
                {
                    ExTraceGlobals.StorageTracer.TraceError <IExchangePrincipal, string, FolderSaveResult>(0L, "{0}: Failed to create folder {1} due to {2}.", mailboxOwner, text, folderSaveResult);
                    throw folderSaveResult.ToException(ServerStrings.ExCannotCreateFolder(folderSaveResult.ToString()));
                }
            }
            catch (ObjectExistedException)
            {
                if (num > maxSuffix)
                {
                    throw;
                }
                text = ServerStrings.SharingFolderNameWithSuffix(displayName, num++);
                folder.DisplayName = text;
                ExTraceGlobals.StorageTracer.TraceDebug <IExchangePrincipal, string>(0L, "{0}: Folder exists. Recalculated folder name: {1}.", mailboxOwner, text);
                goto IL_1A;
            }
        }