| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- using MediatR;
- using Microsoft.AspNetCore.Mvc;
- using Microsoft.AspNetCore.Mvc.RazorPages;
- namespace Admin.Pages.Config
- {
- public class BasicModel(IMediator mediator) : PageModel
- {
- [BindProperty]
- public InputModel Input { get; set; } = new();
- public async Task OnGetAsync(CancellationToken ct)
- {
- var config = await mediator.Send(new GetConfig.Query(), ct);
- if (config is not null)
- {
- Input = InputModel.From(config);
- }
- }
- public async Task<IActionResult> OnPostAsync(CancellationToken ct)
- {
- if (!ModelState.IsValid)
- {
- return Page();
- }
- await mediator.Send(Input.ToCommand(), ct);
- return RedirectToPage();
- }
- public sealed class InputModel
- {
- public UpdateConfig.Request.BasicConfigDto Basic { get; set; } = new();
- public static InputModel From(GetConfig.Response config)
- {
- var req = UpdateConfig.Request.From(config);
- return new()
- {
- Basic = req.Basic
- };
- }
- public UpdateConfig.Command ToCommand()
- {
- return new(
- Basic
- );
- }
- }
- }
- }
|