public bool Execute() { var specificationFiles = SpecificationFiles.Select(x => x.GetMetadata("Fullpath")).ToList(); var repository = ControlFlow.SuppressErrors(() => GitRepository.FromLocalDirectory(BaseDirectory)); CodeGenerator.GenerateCode( specificationFiles, outputFileProvider: x => (AbsolutePath)BaseDirectory / (UseNestedNamespaces ? x.Name : ".") / x.DefaultOutputFileName, namespaceProvider: x => !UseNestedNamespaces ? BaseNamespace : string.IsNullOrEmpty(BaseNamespace) ? x.Name : $"{BaseNamespace}.{x.Name}", sourceFileProvider: x => repository.IsGitHubRepository() ? repository?.GetGitHubDownloadUrl(x.SpecificationFile) : null); if (UpdateReferences) { ReferenceUpdater.UpdateReferences(specificationFiles); } return(true); }
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); }