Compare commits
6 Commits
78135a9f6d
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8df4abc8a3 | ||
|
|
bf69880d5f | ||
|
|
c6178ecacd | ||
|
|
935f026c75 | ||
|
|
e1c57967e4 | ||
|
|
c702e8dbd5 |
@@ -42,7 +42,12 @@ namespace FoodsharingSiegen.Contracts.Entity
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(Groups)) return new List<UserGroup>();
|
||||
var stringList = Groups.Split(",");
|
||||
var enumList = stringList.Where(x => !string.IsNullOrWhiteSpace(x)).Select(Enum.Parse<UserGroup>).ToList();
|
||||
var enumList = stringList
|
||||
.Where(x => !string.IsNullOrWhiteSpace(x))
|
||||
.Select(x => Enum.TryParse<UserGroup>(x.Trim(), out var result) ? result : (UserGroup?)null)
|
||||
.Where(x => x.HasValue)
|
||||
.Select(x => x!.Value)
|
||||
.ToList();
|
||||
return enumList;
|
||||
}
|
||||
set => Groups = string.Join(",", value);
|
||||
|
||||
@@ -34,6 +34,7 @@ namespace FoodsharingSiegen.Contracts.Helper
|
||||
{
|
||||
var type = enumVal.GetType();
|
||||
var memInfo = type.GetMember(enumVal.ToString());
|
||||
if (memInfo.Length == 0) return null;
|
||||
var attributes = memInfo[0].GetCustomAttributes(typeof(T), false);
|
||||
return attributes.Length > 0 ? (T)attributes[0] : null;
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<div class="col">
|
||||
<Field>
|
||||
<FieldLabel>Foodsharing-ID</FieldLabel>
|
||||
<NumericEdit TValue="int" @bind-Value="Prospect.FsId"></NumericEdit>
|
||||
<NumericEdit TValue="int?" Value="@(Prospect.FsId == 0 ? (int?)null : Prospect.FsId)" ValueChanged="@((int? v) => Prospect.FsId = v ?? 0)"></NumericEdit>
|
||||
</Field>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -82,23 +82,52 @@ namespace FoodsharingSiegen.Server.Dialogs
|
||||
|
||||
#region Private Method SaveClick
|
||||
|
||||
private bool _isSaving;
|
||||
|
||||
/// <summary>
|
||||
/// Saves the click (a. beging, 31.05.2022)
|
||||
/// </summary>
|
||||
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();
|
||||
if (IsUpdateMode)
|
||||
{
|
||||
var updateR = await ProspectService.UpdateAsync(Prospect);
|
||||
if (updateR.Success)
|
||||
{
|
||||
if (OnSuccess != null) await OnSuccess.Invoke();
|
||||
await ModalService.Hide();
|
||||
}
|
||||
else
|
||||
{
|
||||
await Notification.Error(updateR.Exception?.Message ?? "Unbekannter Fehler beim Speichern.", "Fehler");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var addR = await ProspectService.AddProspectAsync(Prospect);
|
||||
if (addR.Success)
|
||||
{
|
||||
if (OnSuccess != null) await OnSuccess.Invoke();
|
||||
await ModalService.Hide();
|
||||
}
|
||||
else
|
||||
{
|
||||
await Notification.Error(addR.Exception?.Message ?? "Unbekannter Fehler beim Hinzufügen.", "Fehler");
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
catch (Exception ex)
|
||||
{
|
||||
var addR = await ProspectService.AddProspectAsync(Prospect);
|
||||
if (addR.Success && OnSuccess != null) await OnSuccess.Invoke();
|
||||
await Notification.Error(ex.Message, "Systemfehler");
|
||||
}
|
||||
finally
|
||||
{
|
||||
_isSaving = false;
|
||||
}
|
||||
|
||||
await ModalService.Hide();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -56,13 +56,24 @@ namespace FoodsharingSiegen.Server.Pages
|
||||
|
||||
#region Private Method CreateProspectAsync
|
||||
|
||||
private bool _isOpeningModal;
|
||||
|
||||
/// <summary>
|
||||
/// Asynchronously creates a new prospect by displaying the AddProspectModal dialog and refreshing the prospect list.
|
||||
/// </summary>
|
||||
/// <returns>A task that represents the asynchronous operation.</returns>
|
||||
private async Task CreateProspectAsync()
|
||||
{
|
||||
await EditProspectDialog.ShowAsync(ModalService, LoadProspects);
|
||||
if (_isOpeningModal) return;
|
||||
_isOpeningModal = true;
|
||||
try
|
||||
{
|
||||
await EditProspectDialog.ShowAsync(ModalService, LoadProspects);
|
||||
}
|
||||
finally
|
||||
{
|
||||
_isOpeningModal = false;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -89,15 +100,22 @@ namespace FoodsharingSiegen.Server.Pages
|
||||
/// </summary>
|
||||
private async Task LoadProspects()
|
||||
{
|
||||
var parameter = new GetProspectsParameter
|
||||
try
|
||||
{
|
||||
CannotHaveInteractions = [InteractionType.Complete, InteractionType.Verify, InteractionType.ReleasedForVerification]
|
||||
};
|
||||
var parameter = new GetProspectsParameter
|
||||
{
|
||||
CannotHaveInteractions = [InteractionType.Complete, InteractionType.Verify, InteractionType.ReleasedForVerification]
|
||||
};
|
||||
|
||||
var prospectsR = await ProspectService.GetProspectsAsync(parameter);
|
||||
if (prospectsR.Success) ProspectList = prospectsR.Data;
|
||||
var prospectsR = await ProspectService.GetProspectsAsync(parameter);
|
||||
if (prospectsR.Success) ProspectList = prospectsR.Data;
|
||||
|
||||
await InvokeAsync(StateHasChanged);
|
||||
await InvokeAsync(StateHasChanged);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
await Notification.Error(ex.Message, "Fehler beim Laden");
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
Reference in New Issue
Block a user