protected void CopyFolder(FolderMapping fm) { base.RefreshRequestIfNeeded(); base.TimeTracker.CurrentState = RequestState.CopyingMessages; base.TestIntegration.Barrier("PostponeWriteMessages", new Action(base.RefreshRequestIfNeeded)); base.CheckServersHealth(); ExecutionContext.Create(new DataContext[] { new FolderRecWrapperDataContext(fm) }).Execute(delegate { if (this.CachedRequestJob.IsPublicFolderMailboxRestore && fm.TargetFolder == null) { this.Warnings.Add(MrsStrings.FolderIsMissing(HexConverter.ByteArrayToHexString(fm.EntryId))); return; } using (ISourceFolder folder = this.MailboxMerger.SourceMailbox.GetFolder(fm.EntryId)) { if (folder == null) { this.Report.Append(MrsStrings.ReportSourceFolderDeleted(fm.FullFolderName, TraceUtils.DumpEntryId(fm.EntryId))); } else { using (IDestinationFolder folder2 = this.MailboxMerger.DestMailbox.GetFolder(fm.TargetFolder.EntryId)) { if (folder2 == null) { this.Report.Append(MrsStrings.ReportTargetFolderDeleted(fm.TargetFolder.FullFolderName, TraceUtils.DumpEntryId(fm.TargetFolder.EntryId), fm.FullFolderName)); } else { this.Report.Append(MrsStrings.ReportMergingFolder(fm.FullFolderName, fm.TargetFolder.FullFolderName)); this.CopyFolderData(fm, folder, folder2); folder2.Flush(); } } } } }); base.SaveState(SaveStateFlags.Lazy, null); }
private void MarkFolderByPath(string folderRoot, string folderPath, bool isIncluded) { FolderMappingFlags folderMappingFlags; FolderMapping folderMapping = this.FindFolderByPath(folderRoot, folderPath, false, out folderMappingFlags); if (folderMapping == null) { this.Warnings.Add(MrsStrings.FolderIsMissing(folderPath)); return; } if ((folderMapping.Flags & FolderMappingFlags.InclusionFlags) != FolderMappingFlags.None && (folderMapping.Flags & FolderMappingFlags.Inherit) == folderMappingFlags) { if (isIncluded != ((folderMapping.Flags & FolderMappingFlags.Include) != FolderMappingFlags.None)) { this.warnings.Add(MrsStrings.FolderReferencedAsBothIncludedAndExcluded(folderPath)); } else { this.warnings.Add(MrsStrings.FolderReferencedMoreThanOnce(folderPath)); } } folderMapping.Flags |= ((isIncluded ? FolderMappingFlags.Include : FolderMappingFlags.Exclude) | folderMappingFlags); }
public FolderIsMissingPermanentException(string folderPath, Exception innerException) : base(MrsStrings.FolderIsMissing(folderPath), innerException) { this.folderPath = folderPath; }