|
|
@ -1,10 +1,281 @@
|
|
|
|
namespace EFCore7Study.CoreConsoleApp
|
|
|
|
using EFCore7Study.DataService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
using Spectre.Console;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
namespace EFCore7Study.CoreConsoleApp
|
|
|
|
{
|
|
|
|
{
|
|
|
|
internal class Program
|
|
|
|
internal class Program
|
|
|
|
{
|
|
|
|
{
|
|
|
|
static void Main(string[] args)
|
|
|
|
static void Main(string[] args)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Console.WriteLine("Hello, World!");
|
|
|
|
AnsiConsole.Status()
|
|
|
|
|
|
|
|
.Spinner(Spinner.Known.BouncingBar)
|
|
|
|
|
|
|
|
.Start("测试一个", ctx =>
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.BouncingBar);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.Aesthetic));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Arc);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.Arc));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Arrow);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.Arrow));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Arrow2);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.Arrow2));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Arrow3);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.Arrow3));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Balloon);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.Balloon));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Balloon2);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.Balloon2));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.BetaWave);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.BetaWave));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Bounce);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.Bounce));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.BouncingBall);
|
|
|
|
|
|
|
|
Thread.Sleep(3000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.BouncingBall));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.BouncingBar);
|
|
|
|
|
|
|
|
Thread.Sleep(3000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.BouncingBar));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.BoxBounce);
|
|
|
|
|
|
|
|
Thread.Sleep(3000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.BoxBounce));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.BoxBounce2);
|
|
|
|
|
|
|
|
Thread.Sleep(3000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.BoxBounce2));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Dots8Bit);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.Dots8Bit));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Christmas);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.Christmas));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Circle);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.Circle));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.CircleHalves);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.CircleHalves));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.CircleQuarters);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.CircleQuarters));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Clock);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.Clock));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Default);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.Default));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Dots);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.Dots));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Dots2);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.Dots2));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Dots8Bit);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.Dots8Bit));
|
|
|
|
|
|
|
|
//========================================================
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Dqpb);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.Dqpb));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Earth);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.Earth));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Flip);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.Flip));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Grenade);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.Grenade));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.GrowHorizontal);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.GrowHorizontal));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.GrowVertical);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.GrowVertical));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Hamburger);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.Hamburger));
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Hearts);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.Hearts));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Layer);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.Layer));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Line);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.Line));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Line2);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.Line2));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Material);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.Material));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Monkey);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.Monkey));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Moon);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.Moon));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Noise);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.Noise));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Pipe);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.Pipe));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Point);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.Dots8Bit));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Pong);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.Pong));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Runner);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.Runner));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Shark);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.Shark));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.SimpleDots);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.SimpleDots));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.SimpleDotsScrolling);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.SimpleDotsScrolling));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Smiley);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.Smiley));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.SquareCorners);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.SquareCorners));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Squish);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.Squish));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Star);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.Star));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Star2);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.Star2));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Toggle);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.Toggle));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Toggle2);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.Toggle2));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Triangle);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.Triangle));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Weather);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.Weather));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Weather);
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine(nameof(Spinner.Known.Weather));
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
AnsiConsole.Status()
|
|
|
|
|
|
|
|
.Spinner(Spinner.Known.Balloon)
|
|
|
|
|
|
|
|
.Start("准备查询数据库...", ctx =>
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 生成查询对象
|
|
|
|
|
|
|
|
ctx.Status("生成查询对象...");
|
|
|
|
|
|
|
|
AppDbContext dbContext = new AppDbContext();
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine("生成查询对象: DbContext, 完成!");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 连接数据库
|
|
|
|
|
|
|
|
ctx.Status("正在连接到数据库服务器...");
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Balloon);
|
|
|
|
|
|
|
|
ctx.SpinnerStyle(Style.Parse("green"));
|
|
|
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine("已连接到数据库服务器!");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 查询数据
|
|
|
|
|
|
|
|
ctx.Status("正在查询数据...");
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Star2);
|
|
|
|
|
|
|
|
ctx.SpinnerStyle(Style.Parse("yellow"));
|
|
|
|
|
|
|
|
Thread.Sleep(3000);
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine("完成查询!");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//输出查询结果
|
|
|
|
|
|
|
|
ctx.Status("输出查询结果...");
|
|
|
|
|
|
|
|
ctx.Spinner(Spinner.Known.Arrow);
|
|
|
|
|
|
|
|
ctx.SpinnerStyle(Style.Parse("red"));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dbContext.Accounts.ToList().ForEach(x =>
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine($"标识:{x.Id},编号:{x.Code}, 姓名:{x.Name.PadRight(10)},年龄:{x.Age}, 密码:{x.Pwd}");
|
|
|
|
|
|
|
|
Thread.Sleep(300);
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
AnsiConsole.MarkupLine("任务完成!");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|