|
@@ -60,6 +60,7 @@ namespace InABox.Clients
|
|
|
|
|
|
public abstract class Client
|
|
|
{
|
|
|
+
|
|
|
public abstract CoreTable Query(IFilter? filter = null, IColumns? columns = null, ISortOrder? sortOrder = null, CoreRange? range = null);
|
|
|
public abstract void Save(Entity entity, string auditNote);
|
|
|
public abstract void Save(IEnumerable<Entity> entity, string auditNote);
|
|
@@ -366,6 +367,20 @@ namespace InABox.Clients
|
|
|
|
|
|
public class Client<TEntity> : Client, IDisposable where TEntity : Entity, IRemotable, new()
|
|
|
{
|
|
|
+ #region IQueryProvider
|
|
|
+
|
|
|
+ private class ClientQueryProvider : IQueryProvider<TEntity>
|
|
|
+ {
|
|
|
+ public CoreTable Query(Filter<TEntity>? filter = null, Columns<TEntity>? columns = null, SortOrder<TEntity>? sort = null, CoreRange? range = null)
|
|
|
+ {
|
|
|
+ return Client.Query(filter, columns, sort, range);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public static IQueryProvider<TEntity> Provider { get; private set; } = new ClientQueryProvider();
|
|
|
+
|
|
|
+ #endregion
|
|
|
+
|
|
|
private IClient<TEntity> _client;
|
|
|
|
|
|
public Client()
|