增加MessageBoxService服务

This commit is contained in:
chfei committed 2026-11-13 10:16:43 +08:00
1 parent 3dcb6a1c34
commit 30a6a5ea24
15 files changed
+517 -153

No files matched your search

@@ -76,6 +76,11 @@ class Program
TextBlock text = (TextBlock)shell.FindName("StatusText");
ProgressBar progress = (ProgressBar)shell.FindName("StatusProgress");
Check(text.Text == "就绪" && progress.Visibility == Visibility.Collapsed, "初始状态");
_ = app.Dispatcher.BeginInvoke(new Action(() =>
throw new System.ComponentModel.DataAnnotations.ValidationException("分页参数无效")));
await Dispatcher.Yield(DispatcherPriority.ApplicationIdle);
Check(shell.IsVisible && text.Text == "分页参数无效" && status.Current.Level == StatusLevel.Error,
"Dispatcher 异常后主窗口继续运行并显示错误");
foreach ((StatusLevel level, string brush, int value) in new[] {
(StatusLevel.Info, "PrimaryTextBrush", 0), (StatusLevel.Warning, "WarningBrush", 50),
(StatusLevel.Error, "DangerBrush", 75), (StatusLevel.Success, "SuccessBrush", 100) })
@@ -90,7 +95,12 @@ class Program
Check(text.Text == "完成" && progress.Visibility == Visibility.Collapsed, "纯文本状态隐藏进度");
using var usersClient = new StoreApiClient(new ApiClientOptions { BaseUrl = new Uri("http://localhost:14312/api/v1/") }, httpClient);
usersClient.Session.Clear();
var usersVm = new UserManagementPageViewModel(usersClient, app.Container.Resolve<IDialogService>(), status);
var usersExtension = new Prism.Autofac.AutofacContainerExtension();
usersExtension.RegisterInstance(typeof(StoreApiClient), usersClient);
usersExtension.FinalizeExtension();
using var usersContainer = usersExtension.Instance;
var userService = usersContainer.Resolve<IUserService>();
var usersVm = new UserManagementPageViewModel(userService, app.Container.Resolve<IDialogService>(), status);
await usersVm.SearchCommand.Execute();
Check(status.Current.Level == StatusLevel.Error && usersVm.CanInteract, "查询失败后显示错误并允许重试");
await usersClient.Auth.LoginAsync(new() { UserName = "admin", Password = "320BB1D43EC042096A83DBAC6DC9294A" });
@@ -100,6 +110,7 @@ class Program
Check(usersVm.CanInteract && usersVm.Total == 51 && status.Current.Level == StatusLevel.Success, "重试查询成功");
await usersVm.PageCommand.Execute(new DataGridPageRequest(2, 50));
Check(usersVm.Page == 2 && usersVm.CanInteract && status.Current.Level == StatusLevel.Success, "分页查询成功");
await userService.DeleteAsync(1);
Console.WriteLine("PASS: status bar bindings, colors and background progress reports.");
return;
}
@@ -230,6 +241,13 @@ sealed class LoginHandler : HttpMessageHandler
Content = new StringContent("""{"code":200,"data":{"total":51,"items":[{"id":1,"userName":"admin"}]}}""", Encoding.UTF8, "application/json")
};
}
if (request.Method == HttpMethod.Post && request.RequestUri?.PathAndQuery == "/api/v1/user/DelUser?id=1")
{
return new HttpResponseMessage(HttpStatusCode.OK)
{
Content = new StringContent("""{"code":200}""", Encoding.UTF8, "application/json")
};
}
if (request.RequestUri?.AbsoluteUri != "http://localhost:14312/api/v1/Auth/Login")
throw new Exception("登录路由错误");
var body = System.Text.Json.JsonDocument.Parse(await request.Content!.ReadAsStringAsync(cancellationToken));
@@ -258,4 +276,4 @@ sealed class TestApp(StoreApiClient client) : App
base.RegisterTypes(containerRegistry);
containerRegistry.RegisterInstance(client);
}
}
}