Esempio n. 1
0
 public ApiProjectOptions(
     DirectoryInfo projectSrcGeneratePath,
     DirectoryInfo?projectTestGeneratePath,
     OpenApiDocument openApiDocument,
     FileInfo openApiDocumentFile,
     string projectPrefixName,
     string projectSuffixName,
     ApiOptions.ApiOptions apiOptions,
     bool forClient          = false,
     string?clientFolderName = null)
     : base(
         projectSrcGeneratePath,
         projectTestGeneratePath,
         openApiDocument,
         openApiDocumentFile,
         projectPrefixName,
         projectSuffixName,
         apiOptions,
         forClient,
         clientFolderName)
 {
     if (string.IsNullOrEmpty(clientFolderName))
     {
         PathForEndpoints       = new DirectoryInfo(Path.Combine(PathForSrcGenerate.FullName, NameConstants.Endpoints));
         PathForContracts       = new DirectoryInfo(Path.Combine(PathForSrcGenerate.FullName, NameConstants.Contracts));
         PathForContractsShared = new DirectoryInfo(Path.Combine(PathForContracts.FullName, NameConstants.ContractsSharedModels));
     }
     else
     {
         PathForEndpoints       = new DirectoryInfo(Path.Combine(Path.Combine(PathForSrcGenerate.FullName, clientFolderName), NameConstants.Endpoints));
         PathForContracts       = new DirectoryInfo(Path.Combine(Path.Combine(PathForSrcGenerate.FullName, clientFolderName), NameConstants.Contracts));
         PathForContractsShared = new DirectoryInfo(Path.Combine(Path.Combine(PathForContracts.FullName), NameConstants.ContractsSharedModels));
     }
 }
Esempio n. 2
0
        protected BaseProjectOptions(
            DirectoryInfo projectSrcGeneratePath,
            DirectoryInfo?projectTestGeneratePath,
            OpenApiDocument openApiDocument,
            FileInfo openApiDocumentFile,
            string projectPrefixName,
            string projectSuffixName,
            ApiOptions.ApiOptions apiOptions)
        {
            if (projectSrcGeneratePath == null)
            {
                throw new ArgumentNullException(nameof(projectSrcGeneratePath));
            }

            ProjectName        = projectPrefixName ?? throw new ArgumentNullException(nameof(projectPrefixName));
            PathForSrcGenerate = projectSrcGeneratePath.Name.StartsWith(ProjectName, StringComparison.OrdinalIgnoreCase)
                ? projectSrcGeneratePath.Parent !
                : projectSrcGeneratePath;

            if (projectTestGeneratePath != null)
            {
                PathForTestGenerate = projectTestGeneratePath.Name.StartsWith(ProjectName, StringComparison.OrdinalIgnoreCase)
                    ? projectTestGeneratePath.Parent !
                    : projectTestGeneratePath;
            }

            Document     = openApiDocument ?? throw new ArgumentNullException(nameof(openApiDocument));
            DocumentFile = openApiDocumentFile ?? throw new ArgumentNullException(nameof(openApiDocumentFile));

            ToolName    = "ApiGenerator";
            ToolVersion = GenerateHelper.GetAtcToolVersion();
            ApiOptions  = apiOptions;

            ApiVersion  = GetApiVersion(openApiDocument);
            ProjectName = projectPrefixName
                          .Replace(" ", ".", StringComparison.Ordinal)
                          .Replace("-", ".", StringComparison.Ordinal)
                          .Trim() + $".{projectSuffixName}";
            PathForSrcGenerate = new DirectoryInfo(Path.Combine(PathForSrcGenerate.FullName, ProjectName));
            ProjectSrcCsProj   = new FileInfo(Path.Combine(PathForSrcGenerate.FullName, $"{ProjectName}.csproj"));
            if (PathForTestGenerate != null)
            {
                PathForTestGenerate = new DirectoryInfo(Path.Combine(PathForTestGenerate.FullName, $"{ProjectName}.Tests"));
                ProjectTestCsProj   = new FileInfo(Path.Combine(PathForTestGenerate.FullName, $"{ProjectName}.Tests.csproj"));
            }

            BasePathSegmentNames = OpenApiDocumentHelper.GetBasePathSegmentNames(openApiDocument);
        }
Esempio n. 3
0
 public ApiProjectOptions(
     DirectoryInfo projectSrcGeneratePath,
     DirectoryInfo?projectTestGeneratePath,
     OpenApiDocument openApiDocument,
     FileInfo openApiDocumentFile,
     string projectPrefixName,
     ApiOptions.ApiOptions apiOptions)
     : base(
         projectSrcGeneratePath,
         projectTestGeneratePath,
         openApiDocument,
         openApiDocumentFile,
         projectPrefixName,
         "Api.Generated",
         apiOptions)
 {
     PathForEndpoints = new DirectoryInfo(Path.Combine(PathForSrcGenerate.FullName, NameConstants.Endpoints));
     PathForContracts = new DirectoryInfo(Path.Combine(PathForSrcGenerate.FullName, NameConstants.Contracts));
     PathForContractsEnumerationTypes = new DirectoryInfo(Path.Combine(PathForContracts.FullName, NameConstants.ContractsEnumerationTypes));
     PathForContractsShared           = new DirectoryInfo(Path.Combine(PathForContracts.FullName, NameConstants.ContractsSharedModels));
 }
Esempio n. 4
0
 public HostProjectOptions(
     DirectoryInfo projectSrcGeneratePath,
     DirectoryInfo?projectTestGeneratePath,
     OpenApiDocument openApiDocument,
     FileInfo openApiDocumentFile,
     string projectPrefixName,
     ApiOptions.ApiOptions apiOptions,
     DirectoryInfo apiProjectSrcPath,
     DirectoryInfo domainProjectSrcPath)
     : base(
         projectSrcGeneratePath,
         projectTestGeneratePath,
         openApiDocument,
         openApiDocumentFile,
         projectPrefixName,
         "Api",
         apiOptions)
 {
     ApiProjectSrcPath    = apiProjectSrcPath ?? throw new ArgumentNullException(nameof(projectSrcGeneratePath));
     DomainProjectSrcPath = domainProjectSrcPath ?? throw new ArgumentNullException(nameof(domainProjectSrcPath));
 }
Esempio n. 5
0
 public DomainProjectOptions(
     DirectoryInfo projectSrcGeneratePath,
     DirectoryInfo?projectTestGeneratePath,
     OpenApiDocument openApiDocument,
     FileInfo openApiDocumentFile,
     string projectPrefixName,
     ApiOptions.ApiOptions apiOptions,
     DirectoryInfo apiProjectSrcPath)
     : base(
         projectSrcGeneratePath,
         projectTestGeneratePath,
         openApiDocument,
         openApiDocumentFile,
         projectPrefixName,
         "Domain",
         apiOptions)
 {
     ApiProjectSrcPath  = apiProjectSrcPath ?? throw new ArgumentNullException(nameof(apiProjectSrcPath));
     PathForSrcHandlers = new DirectoryInfo(Path.Combine(PathForSrcGenerate.FullName, NameConstants.Handlers));
     if (PathForTestGenerate != null)
     {
         PathForTestHandlers = new DirectoryInfo(Path.Combine(PathForTestGenerate.FullName, NameConstants.Handlers));
     }
 }