Update to latest packages and show examples

This commit is contained in:
2026-07-05 22:05:53 +02:00
parent 3a36978997
commit c7ddc282ed
52 changed files with 2156 additions and 21 deletions
@@ -0,0 +1,49 @@
using GerstITS.Common;
using GerstITS.Data;
using GerstITS.Examples.Data.Entities;
using GerstITS.Search;
namespace GerstITS.Examples.Logic.Customers.Search;
internal sealed class CustomerSearchQueryBuilderRule : SearchQueryBuilderRuleBase<Customer, CustomerSearchFilter>
{
#region Fields
private readonly IReadOnlyRepository _repository;
#endregion
#region Constructors
public CustomerSearchQueryBuilderRule(IReadOnlyRepository repository)
{
_repository = repository;
}
#endregion
#region Methods
protected override IQueryable<Customer> CreateQuery(CustomerSearchFilter filter)
{
var query = _repository.Query<CustomerEntity>();
if (filter.Name.IsNotNullOrWhiteSpace())
query = query.Where(i => i.FirstName.Contains(filter.Name)
|| i.LastName.Contains(filter.Name));
if (filter.EMail.IsNotNullOrWhiteSpace())
query = query.Where(i => i.EMail == filter.EMail);
return query.Project(x => new Customer
{
Id = x.Id,
FirstName = x.FirstName,
LastName = x.LastName,
EMail = x.EMail,
IsActive = x.IsActive
});
}
#endregion
}