using Microsoft.AspNetCore.Components; namespace Duempelkas.App.Components.Dialogs; public partial class AddAccountDialog { #region Parameters [Parameter] public EventCallback OnSave { get; set; } [Parameter] public EventCallback OnCancel { get; set; } #endregion #region Fields private string name = string.Empty; private string initialAmount = "0,00"; private bool ValidInitial => Duempelkas.App.Services.BookingInput.TryBalance(initialAmount, out _); private bool saving; #endregion #region Actions private async Task Save() { if (!saving && !string.IsNullOrWhiteSpace(name) && ValidInitial) { saving = true; try { Duempelkas.App.Services.BookingInput.TryBalance(initialAmount, out var initial); await OnSave.InvokeAsync(new(name.Trim(), initial)); } catch (Exception ex) { Toasts.Show("Das Konto konnte nicht angelegt werden. Die Eingaben bleiben erhalten.", Duempelkas.App.Services.ToastKind.Error, ex.Message); } finally { saving = false; } } } private async Task Cancel() { if (modal != null) await modal.RequestCloseAsync(); else await OnCancel.InvokeAsync(); } #endregion }