private Task SyncOneFileAsync( RefactorFileModel file, string destinationFile, CancellationToken cancellationToken) { if (Directory.Exists(destinationFile)) { Directory.Delete(destinationFile, true); } return(CopyFileAsync(file.Sources.Single(), destinationFile, cancellationToken)); }
private Task SyncManyFileAsync( RefactorFileModel file, string destinationPath, CancellationToken cancellationToken) { if (File.Exists(destinationPath)) { File.Delete(destinationPath); } Directory.CreateDirectory(destinationPath); var extension = Path.GetExtension(file.Name); var sourcesTasks = file.Sources.Select(source => { var destinationFile = Path.Combine(destinationPath, $"{GetStringHash(source.Path)}{extension}"); return(CopyFileAsync(source, destinationFile, cancellationToken)); }).ToArray(); return(Task.WhenAll(sourcesTasks)); }