108 lines
2.9 KiB
C#
108 lines
2.9 KiB
C#
using Spectre.Console;
|
|
|
|
#region "Previous Lessons"
|
|
//Lesson 2 - Initial Setup
|
|
////AnsiConsole.MarkupLine("[bold red]Hello, World![/]");
|
|
////AnsiConsole.MarkupLine("Hello, World!");
|
|
////AnsiConsole.MarkupLine("[slowblink]Hello, World![/]");
|
|
|
|
|
|
// Lesson 3 - Colors and styles
|
|
|
|
////AnsiConsole.MarkupLine("[red]This is the inline markup[/]");
|
|
////AnsiConsole.MarkupLine("[red on white]This is the inline markup[/]");
|
|
////AnsiConsole.MarkupLine("[red on white bold]This is the inline markup[/]");
|
|
////Style danger = new Style(
|
|
//// foreground: Color.Red,
|
|
//// background: Color.White,
|
|
//// decoration: Decoration.Bold | Decoration.Italic
|
|
//// );
|
|
|
|
////AnsiConsole.Write(new Markup("Danger Text from Style\n", danger));
|
|
////AnsiConsole.WriteLine(" and more...");
|
|
|
|
|
|
// Lesson 4 - Text prompts
|
|
|
|
//////int age = AnsiConsole.Ask<int>("What is your [green]age[/]?");
|
|
////int age = AnsiConsole.Prompt(
|
|
//// new TextPrompt<int>("What is your age")
|
|
//// .Validate((x) => x switch
|
|
//// {
|
|
//// < 0 => ValidationResult.Error("You were not born yet!"),
|
|
//// > 120 => ValidationResult.Error("You are too old!"),
|
|
//// _ => ValidationResult.Success()
|
|
//// })
|
|
////);
|
|
//////bool isHappy = AnsiConsole.Ask<bool>("Are you [green]happy[/]?");
|
|
|
|
////string happyText = AnsiConsole.Prompt(
|
|
//// new TextPrompt<string>("Are you [green]happy[/]?")
|
|
//// .AddChoice("Yes")
|
|
//// .AddChoice("No")
|
|
//// .DefaultValue("Yes")
|
|
////);
|
|
////AnsiConsole.MarkupLine($"Happy: {happyText}\nAge: {age}");
|
|
|
|
|
|
// Lesson 5 - Item Selection
|
|
|
|
////List<string> names = [
|
|
//// "Tim Corey",
|
|
//// "Sue Storm",
|
|
//// "Bilbo Baggins",
|
|
//// "John Doe",
|
|
//// "Princess Donaut",
|
|
//// "Steve Rogers"
|
|
////];
|
|
|
|
////string favoriteName = AnsiConsole.Prompt(
|
|
//// new SelectionPrompt<string>()
|
|
//// .Title("Which is your favorite placeholder name?")
|
|
//// .PageSize(4)
|
|
//// .MoreChoicesText("[grey](Move up and down to reveal more choices)[/]")
|
|
//// .AddChoices(names)
|
|
////);
|
|
|
|
////AnsiConsole.MarkupLine($"Your favorite name is: [bold red]{favoriteName}[/].");
|
|
|
|
#endregion
|
|
|
|
// Lesson 6
|
|
|
|
List<string> usualNames = [
|
|
"Tim Corey",
|
|
"Sue Storm",
|
|
"Bilbo Baggins",
|
|
"John Doe",
|
|
"Princess Donaut",
|
|
"Steve Rogers"
|
|
];
|
|
|
|
List<string> familyNames = [
|
|
"Charity",
|
|
"Jon",
|
|
"Chris"
|
|
];
|
|
|
|
List<string> favoriteName = AnsiConsole.Prompt(
|
|
new MultiSelectionPrompt<string>()
|
|
.Title("Which are your favorite placeholder names?")
|
|
.InstructionsText(
|
|
"[grey](Press [blue]<space>[/] to toggle selection, " +
|
|
"[green]<enter>[/] to accept)[/]")
|
|
//.AddChoices(usualNames)
|
|
.AddChoiceGroup("Usual Names", usualNames)
|
|
.AddChoiceGroup("Family Names", familyNames)
|
|
);
|
|
|
|
foreach (string name in favoriteName)
|
|
{
|
|
AnsiConsole.MarkupLine($"[bold red]{name}[/]");
|
|
}
|
|
|
|
|
|
Console.ReadLine();
|
|
AnsiConsole.Clear();
|
|
|