diff --git a/FoodsharingSiegen.Server/Dialogs/EditProspectDialog.razor.cs b/FoodsharingSiegen.Server/Dialogs/EditProspectDialog.razor.cs index b175065..49b2481 100644 --- a/FoodsharingSiegen.Server/Dialogs/EditProspectDialog.razor.cs +++ b/FoodsharingSiegen.Server/Dialogs/EditProspectDialog.razor.cs @@ -82,23 +82,34 @@ namespace FoodsharingSiegen.Server.Dialogs #region Private Method SaveClick + private bool _isSaving; + /// /// Saves the click (a. beging, 31.05.2022) /// private async Task SaveClick() { - if (IsUpdateMode) + if (_isSaving) return; + _isSaving = true; + try { - var updateR = await ProspectService.UpdateAsync(Prospect); - if (updateR.Success && OnSuccess != null) await OnSuccess.Invoke(); - } - else - { - var addR = await ProspectService.AddProspectAsync(Prospect); - if (addR.Success && OnSuccess != null) await OnSuccess.Invoke(); - } + if (IsUpdateMode) + { + var updateR = await ProspectService.UpdateAsync(Prospect); + if (updateR.Success && OnSuccess != null) await OnSuccess.Invoke(); + } + else + { + var addR = await ProspectService.AddProspectAsync(Prospect); + if (addR.Success && OnSuccess != null) await OnSuccess.Invoke(); + } - await ModalService.Hide(); + await ModalService.Hide(); + } + finally + { + _isSaving = false; + } } #endregion diff --git a/FoodsharingSiegen.Server/Pages/Prospects.razor.cs b/FoodsharingSiegen.Server/Pages/Prospects.razor.cs index 5e12399..460de62 100644 --- a/FoodsharingSiegen.Server/Pages/Prospects.razor.cs +++ b/FoodsharingSiegen.Server/Pages/Prospects.razor.cs @@ -56,13 +56,24 @@ namespace FoodsharingSiegen.Server.Pages #region Private Method CreateProspectAsync + private bool _isOpeningModal; + /// /// Asynchronously creates a new prospect by displaying the AddProspectModal dialog and refreshing the prospect list. /// /// A task that represents the asynchronous operation. private async Task CreateProspectAsync() { - await EditProspectDialog.ShowAsync(ModalService, LoadProspects); + if (_isOpeningModal) return; + _isOpeningModal = true; + try + { + await EditProspectDialog.ShowAsync(ModalService, LoadProspects); + } + finally + { + _isOpeningModal = false; + } } #endregion