示例#1
0
 /// <summary>
 /// Create a new instance of the <see cref="T:FluentDapper.Data.SelectQueryBuilder`2" /> class.
 /// </summary>
 /// <param name="classMapperFactory"></param>
 /// <param name="predicateFactory"></param>
 /// <param name="predicateQueryBuilderFactory"></param>
 /// <param name="propertyExpressions">The field set to return; or all propertyExpressions if <c>null</c> is provided.</param>
 /// <inheritdoc />
 public SelectQueryBuilder(
     IClassMapperFactory classMapperFactory,
     IPredicateFactory predicateFactory,
     IPredicateQueryBuilderFactory predicateQueryBuilderFactory,
     params Expression <Func <TData, object> >[] propertyExpressions)
     : this(classMapperFactory, predicateFactory, predicateQueryBuilderFactory, new SqlServerDialect(), propertyExpressions)
 {
 }
        public void TestInitialize()
        {
            _classMapperFactory           = new ClassMapperFactory(typeof(AutoClassMapper <>), new List <Assembly>());//, new SqlServerDialect());
            _metadataProviders            = new IFilterMetadataProvider[] { new ArticleFilterMetadataProvider() };
            _predicateFactory             = new PredicateFactory(_metadataProviders);
            _predicateQueryBuilderFactory = new PredicateQueryBuilderFactory();

            _queryBuilder = new QueryBuilder(_classMapperFactory, _predicateFactory, _predicateQueryBuilderFactory);
        }
 public async Task <Expression <Func <ResourceStore, bool> > > CompositeIndex(IPredicateFactory IPredicateFactory, ISearchQueryBase SearchQueryBase)
 {
     if (SearchQueryBase is SearchQueryComposite SearchQueryComposite)
     {
         return(await IIndexCompositePredicateFactory.CompositeIndex(IPredicateFactory, SearchQueryComposite));
     }
     else
     {
         throw new InvalidCastException($"Unable to cast a {nameof(ISearchQueryBase)} of type {SearchQueryBase.GetType().Name} to a {typeof(SearchQueryComposite).Name}");
     }
 }
示例#4
0
        /// <summary>
        /// Create a new instance of the <see cref="SelectQueryBuilder{TData,TViewData}"/> class.
        /// </summary>
        /// <param name="classMapperFactory"></param>
        /// <param name="predicateFactory"></param>
        /// <param name="predicateQueryBuilderFactory"></param>
        /// <param name="sqlDialect">The SQL dialect to use.</param>
        /// <param name="propertyExpressions">The field set to return; or all propertyExpressions if <c>null</c> is provided.</param>
        /// <inheritdoc />
        public SelectQueryBuilder(
            IClassMapperFactory classMapperFactory,
            IPredicateFactory predicateFactory,
            IPredicateQueryBuilderFactory predicateQueryBuilderFactory,
            ISqlDialect sqlDialect,
            params Expression <Func <TData, object> >[] propertyExpressions)
        {
            _classMapperFactory           = classMapperFactory;
            _predicateFactory             = predicateFactory;
            _predicateQueryBuilderFactory = predicateQueryBuilderFactory;

            Dialect = sqlDialect;

            //_propertyExpressions = propertyExpressions;
            _properties[typeof(TData)] = GetProperties(propertyExpressions);
        }
        public async Task <Expression <Func <ResourceStore, bool> > > CompositeIndex(IPredicateFactory IPredicateFactory, SearchQueryComposite SearchQueryComposite)
        {
            var ResourceStorePredicate = LinqKit.PredicateBuilder.New <ResourceStore>(true);

            foreach (SearchQueryCompositeValue CompositeValue in SearchQueryComposite.ValueList)
            {
                if (!SearchQueryComposite.Modifier.HasValue)
                {
                    if (CompositeValue.SearchQueryBaseList is null)
                    {
                        throw new ArgumentNullException(nameof(CompositeValue.SearchQueryBaseList));
                    }
                    ResourceStorePredicate = ResourceStorePredicate.Or(await IPredicateFactory.GetResourceStoreIndexPredicate(SearchQueryComposite.FhirVersionId, SearchQueryComposite.ResourceContext, CompositeValue.SearchQueryBaseList));
                }
                else
                {
                    throw new ApplicationException($"Internal Server Error: The search query modifier: {SearchQueryComposite.Modifier.Value.GetCode()} is not supported for search parameter types of {SearchQueryComposite.SearchParamTypeId.GetCode()}.");
                }
            }
            return(ResourceStorePredicate);
        }
 public ResourceStoreRepository(AppDbContext context, IPredicateFactory IPredicateFactory)
     : base(context)
 {
     this.IPredicateFactory = IPredicateFactory;
 }
示例#7
0
 /// <summary>
 /// Creates a new <see cref="Gateway{TData, TDataFilter}"/> instance.
 /// </summary>
 /// <param name="connectionFactory">The <see cref="IDbConnectionFactory">connection factory</see> to use.</param>
 /// <param name="predicateFactory">The <see cref="IPredicateFactory">predicate factory</see> to use.</param>
 public Gateway(IDbConnectionFactory connectionFactory, IPredicateFactory predicateFactory)
 {
     _connectionFactory = connectionFactory;
     _predicateFactory  = predicateFactory;
 }
示例#8
0
 public QueryBuilder(IClassMapperFactory classMapperFactory, IPredicateFactory predicateFactory, IPredicateQueryBuilderFactory predicateQueryBuilderFactory)
 {
     _classMapperFactory           = classMapperFactory;
     _predicateFactory             = predicateFactory;
     _predicateQueryBuilderFactory = predicateQueryBuilderFactory;
 }