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;
 }
示例#3
0
 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)
 {
 }
示例#4
0
 private void textConflictsRepositoryRadioButton_CheckedChanged(object sender, EventArgs e)
 {
     TextConflictResolution = MergeOptionsPage.ConflictResolutionOption.THEIRS;
 }
示例#5
0
 private void textConflictsPromptRadioButton_CheckedChanged(object sender, EventArgs e)
 {
     TextConflictResolution = MergeOptionsPage.ConflictResolutionOption.PROMPT;
 }
示例#6
0
 private void textConflictsMarkRadioButton_CheckedChanged(object sender, EventArgs e)
 {
     TextConflictResolution = MergeOptionsPage.ConflictResolutionOption.MARK;
 }
示例#7
0
        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);
                }
            }
        }