// Token: 0x06000525 RID: 1317 RVA: 0x00026EB8 File Offset: 0x000250B8 private void AssignTagPropsToFolder(FolderTuple source, FolderTupleCrossServerArchive target, Folder targetFolder, bool update) { for (FolderHelper.DataColumnIndex dataColumnIndex = FolderHelper.DataColumnIndex.startOfTagPropsIndex; dataColumnIndex <= FolderHelper.DataColumnIndex.containerClassIndex; dataColumnIndex++) { PropertyDefinition key = FolderHelper.DataColumns[(int)dataColumnIndex]; ExtendedPropertyDefinition extendedPropertyDefinition = this.EwsStorePropertyMapping[key]; object obj = source.FolderProps[key]; object obj2 = target.FolderProps[key]; if (obj != null && !(obj is PropertyError)) { string text = obj as string; if (text == null || !string.IsNullOrEmpty(text)) { targetFolder.SetExtendedProperty(extendedPropertyDefinition, obj); } } else if (obj2 != null) { targetFolder.RemoveExtendedProperty(extendedPropertyDefinition); } } if (update) { this.EwsDataProvider.UpdateFolder(targetFolder); RemoteArchiveProcessor.Tracer.TraceDebug(0L, "AssignedTagPropsToFolder."); } }
// Token: 0x06000522 RID: 1314 RVA: 0x00026C80 File Offset: 0x00024E80 public FolderTuple CreateAndUpdateFolderInArchive(FolderTuple parentInArchive, FolderTuple sourceInPrimary) { FolderTupleCrossServerArchive folderTupleCrossServerArchive = (FolderTupleCrossServerArchive)parentInArchive; Folder folder = new Folder(this.EwsDataProvider.Service); folder.DisplayName = sourceInPrimary.DisplayName; FolderTupleCrossServerArchive folderTupleCrossServerArchive2 = new FolderTupleCrossServerArchive(folder, folder.Id, folderTupleCrossServerArchive.EwsFolderId, folder.DisplayName, this.ConvertToFolderProps(null)); this.AssignTagPropsToFolder(sourceInPrimary, folderTupleCrossServerArchive2, folderTupleCrossServerArchive2.Folder, false); this.EwsDataProvider.SaveFolder(folder, folderTupleCrossServerArchive.EwsFolderId); folderTupleCrossServerArchive2.EwsFolderId = folder.Id; return(folderTupleCrossServerArchive2); }
// Token: 0x06000520 RID: 1312 RVA: 0x00026B3C File Offset: 0x00024D3C public Dictionary <StoreObjectId, FolderTuple> GetFolderHierarchyInArchive() { Dictionary <StoreObjectId, FolderTuple> dictionary = new Dictionary <StoreObjectId, FolderTuple>(); RemoteArchiveProcessor.Tracer.TraceDebug <IExchangePrincipal, bool>((long)this.primaryMailboxSession.GetHashCode(), "{0}: QueryFolderHierarchy: Archive mailbox: {1}.", this.primaryMailboxSession.MailboxOwner, this.primaryMailboxSession.MailboxOwner.MailboxInfo.IsArchive); Folder folder = this.EwsDataProvider.GetFolder(21, this.FolderSyncProperties); FolderTupleCrossServerArchive folderTupleCrossServerArchive = new FolderTupleCrossServerArchive(folder, folder.Id, folder.ParentFolderId, folder.DisplayName, this.ConvertToFolderProps(folder.ExtendedProperties), true); dictionary.Add(folderTupleCrossServerArchive.FolderId, folderTupleCrossServerArchive); IEnumerable <Folder> folderHierarchy = this.EwsDataProvider.GetFolderHierarchy(100, this.FolderSyncProperties, 21); foreach (Folder folder2 in folderHierarchy) { FolderTupleCrossServerArchive folderTupleCrossServerArchive2 = new FolderTupleCrossServerArchive(folder2, folder2.Id, folder2.ParentFolderId, folder2.DisplayName, this.ConvertToFolderProps(folder2.ExtendedProperties)); dictionary.Add(folderTupleCrossServerArchive2.FolderId, folderTupleCrossServerArchive2); } return(dictionary); }
// Token: 0x0600051E RID: 1310 RVA: 0x000269B4 File Offset: 0x00024BB4 public void MoveToArchive(TagExpirationExecutor.ItemSet itemSet, ElcSubAssistant assistant, FolderArchiver folderArchiver, int totalFailuresSoFar, ref List <Exception> allExceptionsSoFar, out List <string> foldersWithErrors, out int newMoveErrorsTotal) { foldersWithErrors = new List <string>(); newMoveErrorsTotal = 0; using (Folder folder = Folder.Bind(this.primaryMailboxSession, itemSet.FolderId)) { FolderTupleCrossServerArchive folderTupleCrossServerArchive = folderArchiver.GetArchiveFolderTuple(itemSet.FolderId) as FolderTupleCrossServerArchive; if (folderTupleCrossServerArchive != null) { RemoteArchiveProcessor.Tracer.TraceDebug <RemoteArchiveProcessor, string, string>((long)this.GetHashCode(), "{0}: Was able to open target folder {1} in the archive, corresponding to source folder {2}. Will proceed to move in batches.", this, folderTupleCrossServerArchive.DisplayName, folder.DisplayName); this.MoveItemsInBatches(itemSet.Items, folder, folderTupleCrossServerArchive.Folder, assistant, ExpirationExecutor.Action.MoveToArchive, totalFailuresSoFar, ref allExceptionsSoFar, out foldersWithErrors, out newMoveErrorsTotal); } else { RemoteArchiveProcessor.Tracer.TraceWarning <RemoteArchiveProcessor, string>((long)this.GetHashCode(), "{0}: Unable to open target folder in the archive corresponding to source folder {1}. Will not move anything to it (obviously).", this, folder.DisplayName); } } }
// Token: 0x06000521 RID: 1313 RVA: 0x00026C5C File Offset: 0x00024E5C public void UpdatePropertiesOnFolderInArchive(FolderTuple source, FolderTuple targetInArchive) { FolderTupleCrossServerArchive folderTupleCrossServerArchive = targetInArchive as FolderTupleCrossServerArchive; this.AssignTagPropsToFolder(source, folderTupleCrossServerArchive, folderTupleCrossServerArchive.Folder, true); }