using FoodsharingSiegen.Contracts.Entity; using FoodsharingSiegen.Server.Data.Service; using FoodsharingSiegen.Server.Dialogs; using Microsoft.AspNetCore.Components; namespace FoodsharingSiegen.Server.Controls { public partial class ProspectContainer { [Parameter] public Prospect? Prospect { get; set; } [Parameter] public ProspectStateFilter StateFilter { get; set; } [Parameter] public string? CssClass { get; set; } [Parameter] public Func? OnDataChanged { get; set; } private async Task AddInteraction(InteractionType type) { if (Prospect != null && OnDataChanged != null) await AddInteractionModal.ShowAsync(ModalService, OnDataChanged, type, Prospect.Id); } private List GetTyped(InteractionType type) { return Prospect?.Interactions?.Where(x => x.Type == type).ToList() ?? []; } private async Task EditProspectAsync() { await EditProspectDialog.ShowAsync(ModalService, () => InvokeAsync(StateHasChanged), Prospect); } /// /// Gets or sets the value of the prospect service (ab) /// [Inject] public ProspectService ProspectService { get; set; } = null!; private async Task RemoveInteraction(Guid arg) { var confirm = await Message.Confirm("Interaktion wirklich löschen?", "Bestätigen", o => { o.ConfirmButtonText = "Ja, wirklich!"; o.CancelButtonText = "Abbrechen"; o.ShowMessageIcon = false; }); if (confirm) { var removeR = await ProspectService.RemoveInteraction(arg); if(removeR.Success && OnDataChanged != null) await OnDataChanged(); } } } }