Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }