private void AddWithAction(IDictionary <string, InternalCompareInfo> dictionary, IEnumerable <FileSystemInfo> files, Action <InternalCompareInfo> action) { foreach (FileSystemInfo file in files) { InternalCompareInfo info = GetOrAdd(dictionary, file.Name); action(info); } }
private void AddFileResult(string relativeDirectory, InternalCompareInfo internalInfo) { FileCompareInfo result = ToFileCompareInfo(relativeDirectory, internalInfo); if (internalInfo.InSource && internalInfo.InTarget) { result.Status = FileComparer.Compare(result.SourcePath, result.TargetPath); } this.results.Add(result); }
private InternalCompareInfo GetOrAdd(IDictionary <string, InternalCompareInfo> dictionary, string name) { InternalCompareInfo info; if (!dictionary.TryGetValue(name, out info)) { info = new InternalCompareInfo { Name = name }; dictionary.Add(name, info); } return(info); }
private FileCompareInfo ToFileCompareInfo(string relativeDirectory, InternalCompareInfo internalInfo) { string relativePath = Path.Combine(relativeDirectory, internalInfo.Name); var result = new FileCompareInfo { Name = internalInfo.Name, RelativePath = relativePath }; result.SourcePath = Path.Combine(sourceBaseDirectory, relativePath); result.TargetPath = Path.Combine(targetBaseDirectory, relativePath); if (!internalInfo.InSource) { result.Status = FileCompareStatus.TargetOnly; } else if (!internalInfo.InTarget) { result.Status = FileCompareStatus.SourceOnly; } return(result); }