1
0
mirror of https://github.com/chylex/Minecraft-Phantom-Panel.git synced 2025-05-05 03:34:05 +02:00

Refactor web form validation and yielding after submitting

This commit is contained in:
chylex 2022-10-25 04:53:09 +02:00
parent 1c5940dd23
commit fd0097214b
Signed by: chylex
GPG Key ID: 4DE42C8F19A80548
8 changed files with 13 additions and 31 deletions

View File

@ -22,7 +22,9 @@
private async Task Submit(EditContext obj) {
BeforeSubmit?.Invoke(this, EventArgs.Empty);
await OnSubmit.InvokeAsync(obj);
if (obj.Validate()) {
await OnSubmit.InvokeAsync(obj);
}
}
public void Dispose() {

View File

@ -44,9 +44,10 @@ public sealed class FormButtonSubmit : ComponentBase {
public bool IsSubmitting { get; private set; }
public string? SubmitError { get; private set; }
public void StartSubmitting() {
public async Task StartSubmitting() {
IsSubmitting = true;
SubmitError = null;
await Task.Yield();
}
public void StopSubmitting(string? error = null) {

View File

@ -279,17 +279,12 @@
}
private async Task Submit(EditContext context) {
if (!context.Validate()) {
return;
}
var selectedAgent = form.SelectedAgent;
if (selectedAgent == null) {
return;
}
form.SubmitModel.StartSubmitting();
await Task.Yield();
await form.SubmitModel.StartSubmitting();
var serverPort = (ushort) form.ServerPort;
var rconPort = (ushort) form.RconPort;

View File

@ -47,11 +47,7 @@
}
private async Task DoLogin(EditContext context) {
if (!context.Validate()) {
return;
}
form.SubmitModel.StartSubmitting();
await form.SubmitModel.StartSubmitting();
string? returnUrl = Navigation.GetQueryParameter("return", out var url) ? url : null;
var result = await LoginManager.SignIn(form.Username, form.Password, returnUrl);

View File

@ -56,11 +56,7 @@
}
private async Task DoLogin(EditContext context) {
if (!context.Validate()) {
return;
}
form.SubmitModel.StartSubmitting();
await form.SubmitModel.StartSubmitting();
if (!IsAdministratorTokenValid()) {
form.SubmitModel.StopSubmitting("Invalid administrator token.");

View File

@ -55,13 +55,8 @@
}
private async Task StopInstance(EditContext context) {
if (!context.Validate()) {
return;
}
form.SubmitModel.StartSubmitting();
await Task.Yield();
await form.SubmitModel.StartSubmitting();
var result = await InstanceManager.StopInstance(InstanceGuid, new MinecraftStopStrategy(form.StopInSeconds));
if (result == StopInstanceResult.StopInitiated) {
await AuditLog.AddInstanceStoppedEvent(InstanceGuid, form.StopInSeconds);
@ -72,4 +67,5 @@
form.SubmitModel.StopSubmitting(result.ToSentence());
}
}
}

View File

@ -49,11 +49,7 @@
}
private async Task AddUser(EditContext context) {
if (!context.Validate()) {
return;
}
form.SubmitModel.StartSubmitting();
await form.SubmitModel.StartSubmitting();
var user = new IdentityUser(form.Username);
var result = await UserManager.CreateAsync(user, form.Password);

View File

@ -36,7 +36,7 @@
}
private async Task DeleteUser() {
submitModel.StartSubmitting();
await submitModel.StartSubmitting();
if (userToDelete == null) {
submitModel.StopSubmitting("Invalid user.");