private static async Task <int> GenerateDocAsync(GenerateDocCommandLineOptions options) { if (options.MaxDerivedTypes < 0) { WriteLine("Maximum number of derived items must be equal or greater than 0.", Verbosity.Quiet); return(1); } if (!TryParseOptionValueAsEnum(options.Depth, ParameterNames.Depth, out DocumentationDepth depth, DocumentationOptions.Default.Depth)) { return(1); } if (!TryParseOptionValueAsEnumFlags(options.IgnoredRootParts, ParameterNames.IgnoredRootParts, out RootDocumentationParts ignoredRootParts, DocumentationOptions.Default.IgnoredRootParts)) { return(1); } if (!TryParseOptionValueAsEnumFlags(options.IgnoredNamespaceParts, ParameterNames.IgnoredNamespaceParts, out NamespaceDocumentationParts ignoredNamespaceParts, DocumentationOptions.Default.IgnoredNamespaceParts)) { return(1); } if (!TryParseOptionValueAsEnumFlags(options.IgnoredTypeParts, ParameterNames.IgnoredTypeParts, out TypeDocumentationParts ignoredTypeParts, DocumentationOptions.Default.IgnoredTypeParts)) { return(1); } if (!TryParseOptionValueAsEnumFlags(options.IgnoredMemberParts, ParameterNames.IgnoredMemberParts, out MemberDocumentationParts ignoredMemberParts, DocumentationOptions.Default.IgnoredMemberParts)) { return(1); } if (!TryParseOptionValueAsEnumFlags(options.IncludeContainingNamespace, ParameterNames.IncludeContainingNamespace, out IncludeContainingNamespaceFilter includeContainingNamespaceFilter, DocumentationOptions.Default.IncludeContainingNamespaceFilter)) { return(1); } if (!TryParseOptionValueAsEnumFlags(options.OmitMemberParts, ParameterNames.OmitMemberParts, out OmitMemberParts omitMemberParts, OmitMemberParts.None)) { return(1); } if (!TryParseOptionValueAsEnum(options.Visibility, ParameterNames.Visibility, out Visibility visibility)) { return(1); } if (!options.TryGetProjectFilter(out ProjectFilter projectFilter)) { return(1); } var command = new GenerateDocCommand( options, depth, ignoredRootParts, ignoredNamespaceParts, ignoredTypeParts, ignoredMemberParts, omitMemberParts, includeContainingNamespaceFilter, visibility, projectFilter); CommandResult result = await command.ExecuteAsync(options.Path, options.MSBuildPath, options.Properties); return((result.Kind == CommandResultKind.Success) ? 0 : 1); }
private static async Task <int> GenerateDocAsync(GenerateDocCommandLineOptions options) { if (options.MaxDerivedTypes < 0) { WriteLine("Maximum number of derived items must be equal or greater than 0.", Verbosity.Quiet); return(ExitCodes.Error); } if (!TryParseOptionValueAsEnum(options.Depth, OptionNames.Depth, out DocumentationDepth depth, DocumentationOptions.Default.Depth)) { return(ExitCodes.Error); } if (!TryParseOptionValueAsEnumFlags(options.IgnoredRootParts, OptionNames.IgnoredRootParts, out RootDocumentationParts ignoredRootParts, DocumentationOptions.Default.IgnoredRootParts)) { return(ExitCodes.Error); } if (!TryParseOptionValueAsEnumFlags(options.IgnoredNamespaceParts, OptionNames.IgnoredNamespaceParts, out NamespaceDocumentationParts ignoredNamespaceParts, DocumentationOptions.Default.IgnoredNamespaceParts)) { return(ExitCodes.Error); } if (!TryParseOptionValueAsEnumFlags(options.IgnoredTypeParts, OptionNames.IgnoredTypeParts, out TypeDocumentationParts ignoredTypeParts, DocumentationOptions.Default.IgnoredTypeParts)) { return(ExitCodes.Error); } if (!TryParseOptionValueAsEnumFlags(options.IgnoredMemberParts, OptionNames.IgnoredMemberParts, out MemberDocumentationParts ignoredMemberParts, DocumentationOptions.Default.IgnoredMemberParts)) { return(ExitCodes.Error); } if (!TryParseOptionValueAsEnumFlags(options.IncludeContainingNamespace, OptionNames.IncludeContainingNamespace, out IncludeContainingNamespaceFilter includeContainingNamespaceFilter, DocumentationOptions.Default.IncludeContainingNamespaceFilter)) { return(ExitCodes.Error); } if (!TryParseOptionValueAsEnumFlags(options.OmitMemberParts, OptionNames.OmitMemberParts, out OmitMemberParts omitMemberParts, OmitMemberParts.None)) { return(ExitCodes.Error); } if (!TryParseOptionValueAsEnum(options.Visibility, OptionNames.Visibility, out Visibility visibility)) { return(ExitCodes.Error); } if (!options.TryGetProjectFilter(out ProjectFilter projectFilter)) { return(ExitCodes.Error); } if (!TryParsePaths(options.Path, out ImmutableArray <string> paths)) { return(ExitCodes.Error); } var command = new GenerateDocCommand( options, depth, ignoredRootParts, ignoredNamespaceParts, ignoredTypeParts, ignoredMemberParts, omitMemberParts, includeContainingNamespaceFilter, visibility, projectFilter); CommandStatus status = await command.ExecuteAsync(paths, options.MSBuildPath, options.Properties); return(GetExitCode(status)); }