dotnet-dynamic-query/PoweredSoft.DynamicQuery.Core/IQueryHandler.cs
2019-03-22 15:27:04 -05:00

26 lines
1.0 KiB
C#

using System;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace PoweredSoft.DynamicQuery.Core
{
public interface IInterceptableQueryHandler
{
void AddInterceptor(IQueryInterceptor interceptor);
}
public interface IQueryHandler : IInterceptableQueryHandler
{
IQueryExecutionResult<TSource> Execute<TSource>(IQueryable<TSource> queryable, IQueryCriteria criteria);
IQueryExecutionResult<TRecord> Execute<TSource, TRecord>(IQueryable<TSource> queryable, IQueryCriteria criteria);
}
public interface IQueryHandlerAsync : IInterceptableQueryHandler
{
Task<IQueryExecutionResult<TSource>> ExecuteAsync<TSource>(IQueryable<TSource> queryable, IQueryCriteria criteria, CancellationToken cancellationToken = default(CancellationToken));
Task<IQueryExecutionResult<TRecord>> ExecuteAsync<TSource, TRecord>(IQueryable<TSource> queryable, IQueryCriteria criteria, CancellationToken cancellationToken = default(CancellationToken));
}
}