public bool Execute() { var metadataFiles = MetadataFiles.Select(x => x.GetMetadata("Fullpath")).ToList(); if (!MetadataFiles.Any()) { ControlFlow.SuppressErrors(() => { var exampleFile = Path.Combine(BaseDirectory, "RandomTool.json"); HttpTasks.HttpDownloadFile(c_exampleUrl, exampleFile); metadataFiles.Add(exampleFile); }); } CodeGenerator.GenerateCode( metadataFiles, BaseDirectory, UseNestedNamespaces, BaseNamespace, GitRepository.FromLocalDirectory(BaseDirectory)); if (UpdateReferences) { ReferenceUpdater.UpdateReferences(metadataFiles); } return(true); }
public void ProcessDirectory(DirectoryInfo directory, Dictionary <ImportFileType, string> fileTypes = null) { try { if (directory == null || !directory.Exists) { throw new Exception( "The specified directory does not exist! Unable to process a directory from nothing or a non-existent path."); } Console.WriteLine($"\r{DateTime.Now} | Processing files in {directory.Name}\t\t\t\t\t"); fileTypes = fileTypes ?? FileTypes; IReadOnlyCollection <FileInfo> files; // Kept separate from first definition so we can comment out certain sections to work on only what we want //files = directory.GetFiles($"*{fileTypes[ImportFileType.CodePage]}"); //if (!files.Any()) // Console.WriteLine($"\rNo Code Page Files were found. Defaulting to {DefaultCodePage.Encoding.EncodingName}\t\t\t\t\t"); //else // foreach (FileInfo file in files) // CodePageFiles.Add(new CodePageFile(file)); //files = directory.GetFiles($"*{fileTypes[ImportFileType.Projection]}"); //if (!files.Any()) // Console.WriteLine($"\rNo Projection Files were found. Defaulting to SRID {DefaultSRID}\t\t\t\t\t"); //else // foreach (FileInfo file in files) // ProjectionFiles.Add(new ProjectionFile(file)); files = directory.GetFiles($"*{fileTypes[ImportFileType.XmlFile]}").OrderBy(o => o.Name).ToArray(); if (!files.Any()) { throw new Exception($"\rNo Metadata Files were found! Unable to generate appropriate schemas!"); } foreach (FileInfo file in files) { MetadataFiles.Add(new MetadataFile(file)); } //Parallel.ForEach(files, f => MetadataFiles.Add(new MetadataFile(f))); } catch (Exception e) { Console.WriteLine($"\r\n{e.Message}\r\n{e}"); throw; } }