Adjusted interaction types and state filters to better streamline onboarding and verification processes. Updated UI labels, navigation, and modal dialogs to reflect new terminology and improve usability. Enhanced filtering logic and added new interaction types to support the revised process.
175 lines
5.2 KiB
C#
175 lines
5.2 KiB
C#
using FoodsharingSiegen.Contracts.Entity;
|
|
using FoodsharingSiegen.Contracts.Model;
|
|
using FoodsharingSiegen.Server.Data.Service;
|
|
using FoodsharingSiegen.Server.Dialogs;
|
|
using Microsoft.AspNetCore.Components;
|
|
|
|
namespace FoodsharingSiegen.Server.Pages
|
|
{
|
|
/// <summary>
|
|
/// The prospects class (a. beging, 11.04.2022)
|
|
/// </summary>
|
|
public partial class Prospects
|
|
{
|
|
#region Dependencies
|
|
|
|
/// <summary>
|
|
/// Gets or sets the value of the prospect service (ab)
|
|
/// </summary>
|
|
[Inject]
|
|
public ProspectService ProspectService { get; set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Gets or sets the value of the user service (ab)
|
|
/// </summary>
|
|
[Inject]
|
|
public UserService UserService { get; set; } = null!;
|
|
|
|
#endregion
|
|
|
|
#region Private Properties
|
|
|
|
/// <summary>
|
|
/// Gets or sets the value of the filter text (ab)
|
|
/// </summary>
|
|
private string? FilterText { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets the value of the interaction modal (ab)
|
|
/// </summary>
|
|
private AddInteractionModal? InteractionModal { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets the value of the prospect list (ab)
|
|
/// </summary>
|
|
private List<Prospect>? ProspectList { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets the value of the prospect modal (ab)
|
|
/// </summary>
|
|
private AddProspectModal ProspectModal { get; set; } = null!;
|
|
|
|
/// <summary>
|
|
/// Gets or sets the value of the users (ab)
|
|
/// </summary>
|
|
private List<User>? Users { get; set; }
|
|
|
|
#endregion
|
|
|
|
#region Override InitializeDataAsync
|
|
|
|
/// <inheritdoc />
|
|
protected override async Task InitializeDataAsync()
|
|
{
|
|
// Load prospects
|
|
await LoadProspects();
|
|
|
|
// Load users
|
|
var getUsersR = await UserService.GetUsersAsync();
|
|
if (getUsersR.Success)
|
|
Users = getUsersR.Data;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Private Method FilterText_Changed
|
|
|
|
/// <summary>
|
|
/// Filters the text changed using the specified filter text (a. beging, 08.02.2023)
|
|
/// </summary>
|
|
/// <param name="filterText">The filter text</param>
|
|
private void FilterText_Changed(string filterText)
|
|
{
|
|
FilterText = filterText;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Private Method LoadProspects
|
|
|
|
/// <summary>
|
|
/// Loads the prospects (a. beging, 11.04.2022)
|
|
/// </summary>
|
|
private async Task LoadProspects()
|
|
{
|
|
var parameter = new GetProspectsParameter
|
|
{
|
|
CannotHaveInteractions = [InteractionType.Complete, InteractionType.Verify, InteractionType.ReleasedForVerification]
|
|
};
|
|
var prospectsR = await ProspectService.GetProspectsAsync(parameter);
|
|
if (prospectsR.Success) ProspectList = prospectsR.Data;
|
|
|
|
await InvokeAsync(StateHasChanged);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Private Method OnAddInteraction
|
|
|
|
/// <summary>
|
|
/// Ons the add interaction using the specified arg (a. beging, 11.04.2022)
|
|
/// </summary>
|
|
/// <param name="arg">The arg</param>
|
|
private async Task OnAddInteraction(Interaction arg)
|
|
{
|
|
await ProspectService.AddInteraction(arg);
|
|
await LoadProspects();
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Private Method OnAddProspect
|
|
|
|
/// <summary>
|
|
/// Ons the add prospect using the specified arg (a. beging, 11.04.2022)
|
|
/// </summary>
|
|
/// <param name="arg">The arg</param>
|
|
private async Task OnAddProspect(Prospect arg)
|
|
{
|
|
var addProspectR = await ProspectService.AddProspectAsync(arg);
|
|
if (addProspectR.Success) await LoadProspects();
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Private Method OnUpdateProspect
|
|
|
|
/// <summary>
|
|
/// Ons the update prospect using the specified prospect (a. beging, 11.04.2022)
|
|
/// </summary>
|
|
/// <param name="prospect">The prospect</param>
|
|
private async Task OnUpdateProspect(Prospect prospect)
|
|
{
|
|
var updateProspectR = await ProspectService.UpdateAsync(prospect);
|
|
if (updateProspectR.Success) await LoadProspects();
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Private Method RemoveInteraction
|
|
|
|
/// <summary>
|
|
/// Removes the interaction using the specified arg (a. beging, 11.04.2022)
|
|
/// </summary>
|
|
/// <param name="arg">The arg</param>
|
|
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)
|
|
{
|
|
await ProspectService.RemoveInteraction(arg);
|
|
await LoadProspects();
|
|
}
|
|
|
|
await InvokeAsync(StateHasChanged);
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
} |