Files
FoodsharingOnboarding/FoodsharingSiegen.Server/Controls/InteractionRow.razor.cs
Andre Beging 19796928e7 Refactor onboarding and verification workflows.
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.
2025-03-27 17:12:28 +01:00

99 lines
2.8 KiB
C#

using FoodsharingSiegen.Contracts.Entity;
using Microsoft.AspNetCore.Components;
namespace FoodsharingSiegen.Server.Controls
{
/// <summary>
/// The interaction row class (a. beging, 31.05.2022)
/// </summary>
public partial class InteractionRow
{
#region Parameters
/// <summary>
/// Gets or sets the value of the add click (ab)
/// </summary>
[Parameter]
public EventCallback AddClick { get; set; }
/// <summary>
/// Gets or sets the value of the allow add interaction (ab)
/// </summary>
[Parameter]
public bool AllowInteraction { get; set; }
/// <summary>
/// Gets or sets the value of the button text (ab)
/// </summary>
[Parameter]
public string? ButtonIconClass { get; set; }
/// <summary>
/// Gets or sets the value of the caption (ab)
/// </summary>
[Parameter]
public string? Caption { get; set; }
/// <summary>
/// Gets or sets the value of the icon class (ab)
/// </summary>
[Parameter]
public string? IconClass { get; set; }
/// <summary>
/// Gets or sets the value of the minimum (ab)
/// </summary>
[Parameter]
public int Minimum { get; set; } = 1;
/// <summary>
/// Gets or sets the value of the multiple (ab)
/// </summary>
[Parameter]
public bool Multiple { get; set; }
/// <summary>
/// Gets or sets the value of the prospect (ab)
/// </summary>
[Parameter]
public Prospect? Prospect { get; set; }
/// <summary>
/// Gets or sets the value of the remove click (ab)
/// </summary>
[Parameter]
public EventCallback<Guid> RemoveClick { get; set; }
/// <summary>
/// Gets or sets the value of the type (ab)
/// </summary>
[Parameter]
public InteractionType Type { get; set; }
#endregion
#region Private Properties
/// <summary>
/// Gets the value of the alert (ab)
/// </summary>
private bool Alert => Interactions.Any(x => x.Alert);
/// <summary>
/// Gets the value of the done (ab)
/// </summary>
private bool Done => Interactions.Count >= Minimum;
/// <summary>
/// Gets the value of the interactions (ab)
/// </summary>
private List<Interaction> Interactions => Prospect?.Interactions?.Where(x => x.Type == Type).ToList() ?? new List<Interaction>();
/// <summary>
/// Gets the value of the not needed (ab)
/// </summary>
private bool NotNeeded => Interactions.Any(x => x.NotNeeded);
#endregion
}
}