// ------------------------------------------------------------------- private string[] VerifyRequiredFiles(ITargetAssignment assignment, ISubmittableItem[] items) { Dictionary <string, bool> requiredFiles = new Dictionary <string, bool>(); string[] patterns = assignment.AllRequiredFiles; foreach (string pattern in patterns) { requiredFiles.Add(pattern, false); } foreach (ISubmittableItem item in new DepthFirstTraversal <ISubmittableItem>(items, delegate(ISubmittableItem i) { return(i.Children); })) { if (item.Kind == SubmittableItemKind.File) { foreach (string reqPattern in patterns) { FilePattern pattern = new FilePattern(reqPattern); if (pattern.Matches(item.Filename)) { requiredFiles[reqPattern] = true; } } } } List <string> missingFiles = new List <string>(); foreach (string requiredFile in requiredFiles.Keys) { if (requiredFiles[requiredFile] == false) { missingFiles.Add(requiredFile); } } if (missingFiles.Count == 0) { return(null); } else { return(missingFiles.ToArray()); } }
// ------------------------------------------------------------------- private string[] VerifyRequiredFiles(ITargetAssignment assignment, ISubmittableItem[] items) { Dictionary<string, bool> requiredFiles = new Dictionary<string, bool>(); string[] patterns = assignment.AllRequiredFiles; foreach(string pattern in patterns) requiredFiles.Add(pattern, false); foreach (ISubmittableItem item in new DepthFirstTraversal<ISubmittableItem>(items, delegate(ISubmittableItem i) { return i.Children; })) { if (item.Kind == SubmittableItemKind.File) { foreach (string reqPattern in patterns) { FilePattern pattern = new FilePattern(reqPattern); if(pattern.Matches(item.Filename)) { requiredFiles[reqPattern] = true; } } } } List<string> missingFiles = new List<string>(); foreach (string requiredFile in requiredFiles.Keys) { if (requiredFiles[requiredFile] == false) { missingFiles.Add(requiredFile); } } if (missingFiles.Count == 0) { return null; } else { return missingFiles.ToArray(); } }