public static List <CodeExampleGroup> FindExamples(string examplePath, Dictionary <string, FileInfo> examplesCS, Dictionary <string, FileInfo> examplesVB) { List <CodeExampleGroup> result = new List <CodeExampleGroup>(); Dictionary <string, FileInfo> current = null; ExampleFinder csExampleFinder = new ExampleFinderCSharp(); ExampleFinder vbExampleFinder = new ExampleFinderVB(); current = (examplesCS.Count != 0) ? examplesCS : examplesVB; foreach (KeyValuePair <string, FileInfo> sourceCodeItem in current) { string key = sourceCodeItem.Key; List <CodeExample> foundExamplesCS = new List <CodeExample>(); if (examplesCS.Count != 0) { foundExamplesCS = csExampleFinder.Process(examplesCS[key]); } List <CodeExample> foundExamplesVB = new List <CodeExample>(); if (examplesVB.Count != 0) { foundExamplesVB = vbExampleFinder.Process(examplesVB[key]); } CodeExampleCollection mergedExamplesCollection = new CodeExampleCollection(); mergedExamplesCollection.Merge(foundExamplesCS); mergedExamplesCollection.Merge(foundExamplesVB); if (mergedExamplesCollection.Count == 0) { continue; } CodeExampleGroup group = new CodeExampleGroup() { Name = mergedExamplesCollection[0].HumanReadableGroupName, Examples = mergedExamplesCollection }; result.Add(group); } return(result); }
public static List <CodeExampleGroup> FindExamples(string examplePath, Dictionary <string, FileInfo> examplesCS, Dictionary <string, FileInfo> examplesVB) { List <CodeExampleGroup> result = new List <CodeExampleGroup>(); Dictionary <string, FileInfo> current = null; ExampleFinder csExampleFinder; ExampleFinder vbExampleFinder; if (examplesCS.Count == 0) { current = examplesVB; csExampleFinder = null; vbExampleFinder = new ExampleFinderVB(); } else if (examplesVB.Count == 0) { current = examplesCS; csExampleFinder = new ExampleFinderCSharp(); vbExampleFinder = null; } else { current = examplesCS; csExampleFinder = new ExampleFinderCSharp(); vbExampleFinder = new ExampleFinderVB(); } foreach (KeyValuePair <string, FileInfo> sourceCodeItem in current) { string key = sourceCodeItem.Key; List <CodeExample> findedExamplesCS = new List <CodeExample>(); if (csExampleFinder != null) { findedExamplesCS = csExampleFinder.Process(examplesCS[key]); } List <CodeExample> findedExamplesVB = new List <CodeExample>(); if (vbExampleFinder != null) { findedExamplesVB = vbExampleFinder.Process(examplesVB[key]); } List <CodeExample> mergedExamples = new List <CodeExample>(); if (findedExamplesCS.Count != 0 && findedExamplesVB.Count == 0) { mergedExamples = findedExamplesCS; } else if (findedExamplesCS.Count == 0 && findedExamplesVB.Count != 0) { mergedExamples = findedExamplesVB; } else if ((findedExamplesCS.Count == findedExamplesVB.Count)) { mergedExamples = MergeExamples(findedExamplesCS, findedExamplesVB); } if (mergedExamples.Count == 0) { continue; } CodeExampleGroup group = new CodeExampleGroup() { Name = mergedExamples[0].HumanReadableGroupName, Examples = mergedExamples }; result.Add(group); } return(result); }