private void Configure(IQueryConfigurator <DataContext> options) { options.Configure <Invoice>(invoice => { invoice.Map("Id", e => e.InvoiceId); invoice.Map("Paid", e => e.Paid); invoice.Map("Amount", e => e.Amount); invoice.Map("Comment", e => e.Comment); }); }
public static IQueryConfigurator <TEntity> Page <TEntity>(this IQueryConfigurator <TEntity> configurator, int skip, int take) { if (configurator == null) { throw new ArgumentNullException(nameof(configurator)); } var specification = new PageQuerySpecification <TEntity>(skip, take); configurator.AddSpecification(specification); return(configurator); }
public static IQueryConfigurator <TEntity> Distinct <TEntity>(this IQueryConfigurator <TEntity> configurator) { if (configurator == null) { throw new ArgumentNullException(nameof(configurator)); } var specification = new DistinctQuerySpecification <TEntity>(); configurator.AddSpecification(specification); return(configurator); }
public static IQueryConfigurator <TEntity> IgnoreQueryFilters <TEntity>(this IQueryConfigurator <TEntity> configurator) where TEntity : class { if (configurator == null) { throw new ArgumentNullException(nameof(configurator)); } var specification = new IgnoreQueryFiltersQuerySpecification <TEntity>(); configurator.AddSpecification(specification); return(configurator); }
public static IQueryConfigurator <TEntity> Distinct <TEntity>(this IQueryConfigurator <TEntity> configurator, IEqualityComparer <TEntity> comparer) where TEntity : class { if (configurator == null) { throw new ArgumentNullException(nameof(configurator)); } var specification = new DistinctQuerySpecification <TEntity>(comparer); configurator.AddSpecification(specification); return(configurator); }
public static IQueryConfigurator <TIn, TOut> Output <TIn, TOut>(this IQueryConfigurator <TIn, TOut> configurator, Action <IQueryConfigurator <TOut> > callback) { if (configurator == null) { throw new ArgumentNullException(nameof(configurator)); } if (callback == null) { throw new ArgumentNullException(nameof(callback)); } callback(configurator); return(configurator); }
public static IQueryConfigurator <TEntity> OrderBy <TEntity, TProperty>(this IQueryConfigurator <TEntity> configurator, Expression <Func <TEntity, TProperty> > expression, bool descending = false) { if (configurator == null) { throw new ArgumentNullException(nameof(configurator)); } if (expression == null) { throw new ArgumentNullException(nameof(expression)); } var specification = new OrderByQuerySpecification <TEntity, TProperty>(expression, @descending); configurator.AddSpecification(specification); return(configurator); }
public static void ConfigureDefaultQueryProvider(IQueryConfigurator <DataContext> options) { options.Configure <Document>(document => { document.Map("Id", e => e.DocumentId); document.Map("Tag", e => e.Tags, t => t.Tag.Name); document.Map <Invoice>(invoice => { invoice.Map("Company", e => e.Company.Name); invoice.Map("Paid", e => e.Paid); invoice.Map("Amount", e => e.Amount); invoice.Map("Comment", e => e.Comment); invoice.Map("Cancelled", e => e.Cancelled); invoice.Map("Discount", e => e.Discount); }); }); }
public static IQueryConfigurator <TEntity> Where <TEntity>(this IQueryConfigurator <TEntity> configurator, Expression <Func <TEntity, bool> > expression) { if (configurator == null) { throw new ArgumentNullException(nameof(configurator)); } if (expression == null) { throw new ArgumentNullException(nameof(expression)); } var specification = new WhereQuerySpecification <TEntity>(expression); configurator.AddSpecification(specification); return(configurator); }
public static IQueryConfigurator <TIn, TOut> Select <TIn, TOut>(this IQueryConfigurator <TIn> configurator, Expression <Func <TIn, TOut> > expression) { if (configurator == null) { throw new ArgumentNullException(nameof(configurator)); } if (expression == null) { throw new ArgumentNullException(nameof(expression)); } var transformSpecification = new SelectQuerySpecification <TIn, TOut>(expression); var inputSpecifications = configurator.OutputConfiguration.Specifications; return(new SelectQueryConfigurator <TIn, TOut>(transformSpecification, inputSpecifications)); }
public static IQueryConfigurator <TIn, TOut> Select <TIn, TOut>(this IQueryConfigurator <TIn> configurator, Expression <Func <TIn, TOut> > selector) where TIn : class where TOut : class { if (configurator == null) { throw new ArgumentNullException(nameof(configurator)); } if (selector == null) { throw new ArgumentNullException(nameof(selector)); } var transformSpecification = new SelectQuerySpecification <TIn, TOut>(selector); var nextConfigurator = new QueryConfigurator <TIn, TOut>(configurator, transformSpecification); return(nextConfigurator); }
public static IQueryConfigurator <TEntity> TagWith <TEntity>(this IQueryConfigurator <TEntity> configurator, string tag) where TEntity : class { if (configurator == null) { throw new ArgumentNullException(nameof(configurator)); } if (tag == null) { throw new ArgumentNullException(nameof(tag)); } var specification = new TagWithQuerySpecification <TEntity>(tag); configurator.AddSpecification(specification); return(configurator); }
public static IQueryConfigurator <TEntity> Include <TEntity>(this IQueryConfigurator <TEntity> configurator, string navigationPropertyPath) where TEntity : class { if (configurator == null) { throw new ArgumentNullException(nameof(configurator)); } if (navigationPropertyPath == null) { throw new ArgumentNullException(nameof(navigationPropertyPath)); } var specification = new IncludePathQuerySpecification <TEntity>(navigationPropertyPath); configurator.AddSpecification(specification); return(configurator); }
public static IOrderedQueryConfigurator <TEntity> OrderBy <TEntity, TProperty>(this IQueryConfigurator <TEntity> configurator, Expression <Func <TEntity, TProperty> > keySelector) where TEntity : class { return(OrderBy(configurator, keySelector, null, false)); }
public static IQueryConfigurator <TEntity> Distinct <TEntity>(this IQueryConfigurator <TEntity> configurator) where TEntity : class { return(Distinct(configurator, null)); }
public IncludableQueryConfigurator(IQueryConfigurator <TEntity> parentConfigurator) { _parentConfigurator = parentConfigurator ?? throw new ArgumentNullException(nameof(parentConfigurator)); }
public static IQueryConfigurator <TEntity> OrderByDescending <TEntity, TProperty>(this IQueryConfigurator <TEntity> configurator, Expression <Func <TEntity, TProperty> > expression) { return(OrderBy(configurator, expression, true)); }
public static IOrderedQueryConfigurator <TEntity> OrderBy <TEntity, TProperty>(this IQueryConfigurator <TEntity> configurator, Expression <Func <TEntity, TProperty> > keySelector, IComparer <TProperty> comparer, bool descending) where TEntity : class { if (configurator == null) { throw new ArgumentNullException(nameof(configurator)); } if (keySelector == null) { throw new ArgumentNullException(nameof(keySelector)); } const bool isRoot = true; var specification = new OrderByQuerySpecification <TEntity, TProperty>(keySelector, comparer, @descending, isRoot); configurator.AddSpecification(specification); var nextConfigurator = new OrderedQueryConfigurator <TEntity>(configurator); return(nextConfigurator); }
public static IOrderedQueryConfigurator <TEntity> OrderByDescending <TEntity, TProperty>(this IQueryConfigurator <TEntity> configurator, Expression <Func <TEntity, TProperty> > keySelector, IComparer <TProperty> comparer) where TEntity : class { return(OrderBy(configurator, keySelector, comparer, true)); }
public static IIncludableQueryConfigurator <TEntity, TProperty> Include <TEntity, TProperty>(this IQueryConfigurator <TEntity> configurator, Expression <Func <TEntity, TProperty> > navigationPropertyPath) where TEntity : class { if (configurator == null) { throw new ArgumentNullException(nameof(configurator)); } if (navigationPropertyPath == null) { throw new ArgumentNullException(nameof(navigationPropertyPath)); } var specification = new IncludePropertyQuerySpecification <TEntity, TEntity, TProperty>(navigationPropertyPath, true, false); configurator.AddSpecification(specification); var nextConfigurator = new IncludableQueryConfigurator <TEntity, TProperty>(configurator); return(nextConfigurator); }