| File: Commands\New\LegacyFilterOptions.cs | Web Access |
| Project: src\sdk\src\Cli\Microsoft.DotNet.Cli.Definitions\Microsoft.DotNet.Cli.Definitions.csproj (Microsoft.DotNet.Cli.Definitions) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.CommandLine; namespace Microsoft.DotNet.Cli.Commands.New; public sealed class FilterOptions { public required Option<string> AuthorOption { get; init; } public required Option<string> BaselineOption { get; init; } public required Option<string> LanguageOption { get; init; } public required Option<string> TypeOption { get; init; } public required Option<string> TagOption { get; init; } public required Option<string>? PackageOption { get; init; } public IEnumerable<Option> AllOptions { get { yield return AuthorOption; yield return BaselineOption; yield return LanguageOption; yield return TypeOption; yield return TagOption; if (PackageOption != null) { yield return PackageOption; } } } public IEnumerable<string> AllNames => GetAllNames(hasPackageOption: PackageOption != null); public static IEnumerable<string> GetAllNames(bool hasPackageOption) { yield return SharedOptionsFactory.AuthorOptionName; yield return SharedOptionsFactory.BaselineOptionName; yield return SharedOptionsFactory.LanguageOptionName; yield return SharedOptionsFactory.TypeOptionName; yield return SharedOptionsFactory.TagOptionName; if (hasPackageOption) { yield return SharedOptionsFactory.PackageOptionName; } } public static FilterOptions CreateLegacy() => new() { AuthorOption = SharedOptionsFactory.CreateAuthorOption().AsHidden(), BaselineOption = SharedOptionsFactory.CreateBaselineOption().AsHidden(), LanguageOption = SharedOptionsFactory.CreateLanguageOption().AsHidden(), TypeOption = SharedOptionsFactory.CreateTypeOption().AsHidden(), TagOption = SharedOptionsFactory.CreateTagOption().AsHidden(), PackageOption = SharedOptionsFactory.CreatePackageOption().AsHidden(), }; public static FilterOptions CreateSupported(bool hasPackageOption) => new() { AuthorOption = SharedOptionsFactory.CreateAuthorOption(), BaselineOption = SharedOptionsFactory.CreateBaselineOption(), LanguageOption = SharedOptionsFactory.CreateLanguageOption(), TypeOption = SharedOptionsFactory.CreateTypeOption(), TagOption = SharedOptionsFactory.CreateTagOption(), PackageOption = hasPackageOption ? SharedOptionsFactory.CreatePackageOption() : null, }; }