private void TransformSource(IFilesSource filesSource, FilesList filesList) { CopyProcessorTransformation transformation = FindTransformationForSource(filesSource.Id); bool flattenDirs = (transformation.Options & CopyProcessorTransformationOptions.FlattenDirStructure) != 0; LocalPath destinationPath = transformation.DestinationPath; foreach (PackagedFileInfo sourceFile in filesSource.ListFiles()) { if (false == LoggingHelper.LogIfFilteredOut(sourceFile.FileFullPath.ToString(), filter, taskContext)) { continue; } FullPath destinationFullPath = destinationRootDir.CombineWith(destinationPath); if (sourceFile.LocalPath != null) { LocalPath destLocalPath = sourceFile.LocalPath; if (flattenDirs) { destLocalPath = destLocalPath.Flatten; } destinationFullPath = destinationFullPath.CombineWith(destLocalPath); } else { destinationFullPath = destinationFullPath.CombineWith(new LocalPath(sourceFile.FileFullPath.FileName)); } string destFile = destinationFullPath.FileName; if (fileTransformations.ContainsKey(destFile)) { destinationFullPath = destinationFullPath.ParentPath.CombineWith( fileTransformations[destFile]); } FileFullPath destinationFileFullPath = destinationFullPath.ToFileFullPath(); filesList.AddFile(new PackagedFileInfo(destinationFileFullPath)); copier.Copy(sourceFile.FileFullPath, destinationFileFullPath); } }
public void AddFilesSource(IFilesSource filesSource) { filesSources.Add(filesSource.Id, filesSource); }