@using Moonlight.Frontend.Infrastructure.Helpers
@using MoonlightServers.Shared
@using MoonlightServers.Shared.Admin.Templates
@using ShadcnBlazor.Dialogs
@using ShadcnBlazor.Buttons
@using ShadcnBlazor.Extras.Forms
@using ShadcnBlazor.Extras.Toasts
@using ShadcnBlazor.Fields
@using ShadcnBlazor.Inputs
@inherits ShadcnBlazor.Extras.Dialogs.DialogBase
@inject HttpClient HttpClient
@inject ToastService ToastService
Create Variable
Create a new variable
@code
{
[Parameter] public DetailedTemplateDto Template { get; set; }
[Parameter] public Func OnSubmit { get; set; }
private CreateVariableDto Model = new();
private EnhancedEditForm Form;
private async Task OnValidSubmitAsync(EditContext editContext, ValidationMessageStore validationMessageStore)
{
var response = await HttpClient.PostAsJsonAsync(
$"api/admin/servers/templates/{Template.Id}/variables",
Model,
SerializationContext.Default.Options
);
if (!response.IsSuccessStatusCode)
{
await ProblemDetailsHelper.HandleProblemDetailsAsync(response, Model, validationMessageStore);
return false;
}
await OnSubmit.Invoke();
await ToastService.SuccessAsync(
"Variable Creation",
$"Successfully created variable {Model.DisplayName}"
);
await CloseAsync();
return true;
}
}