Exemplo n.º 1
0
 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);
        }
Exemplo n.º 8
0
 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));
 }
Exemplo n.º 16
0
 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);
        }