using System.Collections.Generic; using System.ComponentModel; using System.IO; using System.Linq; using Packager.Parameters; namespace Packager.Tasks { [DisplayName("Extract Common Files")] public class ExtractCommon: Task { [Input("File Lists", IOCardinality.Multi, IOType.File)] public List FileLists { get; set; } [Output("Common Files List", IOType.File)] public List CommonFilesList = new List(); public ExtractCommon() { FileLists = new List(); } protected override void StartInternal(BuildConfiguration profile, cookerWrapper cooker, TaskIO inputs, string outputFolder) { IEnumerable commonList = null; foreach (var file in inputs["FileLists"]) { var list = File.ReadAllLines(file); commonList = commonList?.Intersect(list) ?? list; } var commonName = Path.Combine(outputFolder, "common.txt"); if (commonList != null) File.WriteAllLines(commonName, commonList); CommonFilesList.Add(commonName); //OnFinished(0); } } }