Neue Query erstellen
Eine Query wird von der Basis-Klasse EisQuery abgeleitet und im Unterverzeichnis Extension / Query abgelegt. Die Implementierung erfolgt gemäss folgendem Beispiel:
using Eis.Framework.Business.Base.Persistence;
using Eis.Framework.Business.Base.Query;
namespace Eis.MyDemo.Service.Demo.Extension;
internal class QueryDemoEntities : EisQuery
.WithResult<IDemoEntity>
.WithInput<QueryDemoEntitiesInput>
.AsStandalone
{
private readonly IUnitOfWork _unitOfWork;
public QueryDemoEntities(IUnitOfWork unitOfWork)
{
_unitOfWork = unitOfWork;
}
public IQueryConfigurator<IDemoEntity, QueryDemoEntitiesInput> GetQueryConfigurator(IQueryConfigurator<IDemoEntity, QueryDemoEntitiesInput> configurator)
{
return configurator.ConfigureColumnsForType()
.SetDefaultOrderBy(e => e.Text)
.RegisterUniversalFilter(e => e.Text, i => i.Text ?? "");
}
public void RegisterInputParameters(IInputParameterRegisterService<QueryDemoEntitiesInput> registerService)
{
registerService.RegisterFor(i => i.Text)
.SetOptional();
}
public IQueryable<IDemoEntity> Execute(IQueryContext<QueryDemoEntitiesInput> configurator)
{
return _unitOfWork.Linq<IDemoEntity>().Where(e => e.DeletedOn == null);
}
}
internal record QueryDemoEntitiesInput(
string? Text
);