Buildversion and FilterHelper
This commit is contained in:
42
FoodsharingSiegen.Shared/Helper/FilterHelper.cs
Normal file
42
FoodsharingSiegen.Shared/Helper/FilterHelper.cs
Normal file
@@ -0,0 +1,42 @@
|
||||
using FoodsharingSiegen.Contracts.Entity;
|
||||
using FoodsharingSiegen.Contracts.Model;
|
||||
|
||||
namespace FoodsharingSiegen.Shared.Helper
|
||||
{
|
||||
public static class FilterHelper
|
||||
{
|
||||
#region Public Method ApplyFilter
|
||||
|
||||
/// <summary>
|
||||
/// Filters the given prospect list based on the provided filter criteria.
|
||||
/// </summary>
|
||||
/// <param name="prospectList">
|
||||
/// The list of prospects to be filtered. Can be null.
|
||||
/// </param>
|
||||
/// <param name="filter">
|
||||
/// The filter criteria used to narrow down the prospect list.
|
||||
/// </param>
|
||||
/// <returns>
|
||||
/// A filtered list of prospects that meet the criteria specified in the filter.
|
||||
/// </returns>
|
||||
public static List<Prospect> ApplyFilter(this List<Prospect>? prospectList, ProspectFilter filter)
|
||||
{
|
||||
if (prospectList == null) return [];
|
||||
|
||||
var filterListQ = prospectList.AsQueryable();
|
||||
if (!string.IsNullOrWhiteSpace(filter.Text))
|
||||
filterListQ = filterListQ
|
||||
.Where(x =>
|
||||
x.Name.Contains(filter.Text, StringComparison.OrdinalIgnoreCase) ||
|
||||
(!string.IsNullOrWhiteSpace(x.Memo) && x.Memo.Contains(filter.Text, StringComparison.OrdinalIgnoreCase) == true) ||
|
||||
x.FsId.ToString().Contains(filter.Text, StringComparison.OrdinalIgnoreCase)).AsQueryable();
|
||||
|
||||
if (filter.WithoutStepInBriefing)
|
||||
filterListQ = filterListQ.Where(x => x.Interactions.All(i => i.Type != InteractionType.StepInBriefing));
|
||||
|
||||
return filterListQ.ToList();
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user