public static FolderContentsMapper Create(FolderMapping folderMapping, ISourceFolder srcFolder, FolderHierarchy sourceHierarchy, IDestinationFolder destFolder, FolderHierarchy destHierarchy, ConflictResolutionOption conflictResolutionOption, FAICopyOption faiCopyOption, FolderContentsMapperFlags mapperFlags) { if (!mapperFlags.HasFlag(FolderContentsMapperFlags.ImapSync)) { return(new FolderContentsMapper(folderMapping, srcFolder, sourceHierarchy, destFolder, destHierarchy, conflictResolutionOption, faiCopyOption, mapperFlags)); } return(new ImapFolderContentsMapper(folderMapping, srcFolder, sourceHierarchy, destFolder, destHierarchy, conflictResolutionOption, faiCopyOption, mapperFlags)); }
protected FolderContentsMapper(FolderMapping folderMapping, ISourceFolder srcFolder, FolderHierarchy sourceHierarchy, IDestinationFolder destFolder, FolderHierarchy destHierarchy, ConflictResolutionOption conflictResolutionOption, FAICopyOption faiCopyOption, FolderContentsMapperFlags mapperFlags) { this.folderMapping = folderMapping; this.srcFolder = srcFolder; this.destFolder = destFolder; this.destHierarchy = destHierarchy; this.sourceHierarchy = sourceHierarchy; this.conflictResolutionOption = conflictResolutionOption; this.faiCopyOption = faiCopyOption; this.sourceMapping = new EntryIdMap <MessageRec>(); this.targetMapping = new EntryIdMap <MessageRec>(); this.mapperFlags = mapperFlags; }
public ImapFolderContentsMapper(FolderMapping folderMapping, ISourceFolder srcFolder, FolderHierarchy sourceHierarchy, IDestinationFolder destFolder, FolderHierarchy destHierarchy, ConflictResolutionOption conflictResolutionOption, FAICopyOption faiCopyOption, FolderContentsMapperFlags mapperFlags) : base(folderMapping, srcFolder, sourceHierarchy, destFolder, destHierarchy, conflictResolutionOption, faiCopyOption, mapperFlags) { }
private void textConflictsRepositoryRadioButton_CheckedChanged(object sender, EventArgs e) { TextConflictResolution = MergeOptionsPage.ConflictResolutionOption.THEIRS; }
private void textConflictsPromptRadioButton_CheckedChanged(object sender, EventArgs e) { TextConflictResolution = MergeOptionsPage.ConflictResolutionOption.PROMPT; }
private void textConflictsMarkRadioButton_CheckedChanged(object sender, EventArgs e) { TextConflictResolution = MergeOptionsPage.ConflictResolutionOption.MARK; }
private void ResolveConflict(string fileName, ConflictResolutionOption option, string syncId) { var name = Path.Combine( Path.GetDirectoryName(fileName), Path.GetFileNameWithoutExtension(fileName)); var ext = Path.GetExtension(fileName); var names = new { A = Path.Combine(syncTarget.A, fileName), AA = Path.Combine(syncTarget.A, string.Format("{0}.{1}.{2}{3}", name, "A", syncId, ext)), AB = Path.Combine(syncTarget.A, string.Format("{0}.{1}.{2}{3}", name, "B", syncId, ext)), B = Path.Combine(syncTarget.B, fileName), BA = Path.Combine(syncTarget.B, string.Format("{0}.{1}.{2}{3}", name, "A", syncId, ext)), BB = Path.Combine(syncTarget.B, string.Format("{0}.{1}.{2}{3}", name, "B", syncId, ext)), }; if ((option & ConflictResolutionOption.RenameA) == ConflictResolutionOption.RenameA) { if (File.Exists(names.A)) { File.Move(names.A, names.AA); Directory.CreateDirectory(Path.GetDirectoryName(names.BA)); File.Copy(names.AA, names.BA); } } if ((option & ConflictResolutionOption.RenameB) == ConflictResolutionOption.RenameB) { if (File.Exists(names.B)) { File.Move(names.B, names.BB); Directory.CreateDirectory(Path.GetDirectoryName(names.AB)); File.Copy(names.BB, names.AB); } } if ((option & ConflictResolutionOption.UseA) == ConflictResolutionOption.UseA) { if (File.Exists(names.A)) { Directory.CreateDirectory(Path.GetDirectoryName(names.B)); File.Copy(names.A, names.B, true); } else { File.Delete(names.B); } } if ((option & ConflictResolutionOption.UseB) == ConflictResolutionOption.UseB) { if (File.Exists(names.B)) { Directory.CreateDirectory(Path.GetDirectoryName(names.A)); File.Copy(names.B, names.A, true); } else { File.Delete(names.A); } } }