public static void Main(string[] args) { string samplesPath = args[0]; string inDir = args[1]; if (!File.Exists(samplesPath)) { Console.WriteLine("Couldn't find samples repository at {0}"); return; } if (!Directory.Exists(inDir)) { Console.WriteLine("Couldn't find input snippet directory"); return; } var langExtensions = new Dictionary <string, string> () { { ".xml", "XML" }, { ".cs", "C#" } }; SampleRepository samples = SampleRepository.LoadFrom(samplesPath); foreach (var file in Directory.EnumerateFiles(inDir, "*", SearchOption.AllDirectories)) { var extension = Path.GetExtension(file); var id = Path.GetFileNameWithoutExtension(file); if (string.IsNullOrEmpty(extension) || string.IsNullOrEmpty(id)) { continue; } string lang; if (!langExtensions.TryGetValue(extension, out lang) || !samples.IsValidID(id)) { Console.WriteLine("Not processed: {0}", Path.GetFileName(file)); continue; } SampleDesc oldDesc = samples.GetSampleDescFromID(id); samples.OverwriteSample(id, File.ReadAllText(file), new SampleDesc { ID = id, Language = lang, DocumentationFilePath = oldDesc.DocumentationFilePath, FullTypeName = oldDesc.FullTypeName }); Console.WriteLine("Done: {0}", id); } samples.Close(false); }
public static void Run(ProcessingContext options) { if (options == null) { throw new ArgumentNullException(nameof(options)); } ProcessingContext = options; HtmlLoader = new HtmlLoader(ProcessingContext); // samples are valid only for DroidDoc. Do not try to read them for other doclets. try { Samples = options.SamplesPath != null?File.Exists(options.SamplesPath) ? SampleRepository.LoadFrom(options.SamplesPath) : new SampleRepository(options.SamplesPath) : null; } catch { } Assemblies = LoadAssemblies(options.Assemblies); EnumMappings = CreateEnumMappings(out EnumMappingsReversed); PackageRenames = CreatePackageRenames(); ProcessAssemblies(options.TypesToProcess, options.TypesToSkip); if (Samples != null) { Samples.Close(true); } }