public SearchRequestFormatter(IAzureSearchMapping mapping, AzureSearchRequest searchRequest)
        {
            this.mapping = mapping;

            SearchRequest = searchRequest;

            Build(searchRequest.Criteria);
        }
        public AzureSearchContext(IAzureSearchConnection connection, IAzureSearchMapping mapping = null, ILogger logger = null)
        {
            Argument.EnsureNotNull(nameof(connection), connection);

            Connection = connection;
            Mapping    = mapping ?? new AzureSearchMapping();
            Logger     = logger ?? NullLogger.Instance;
        }
        public AzureSearchFieldsExpressionVisitor(Type sourcetype, ParameterExpression bindingParameter, IAzureSearchMapping mapping)
        {
            Argument.EnsureNotNull(nameof(bindingParameter), bindingParameter);
            Argument.EnsureNotNull(nameof(mapping), mapping);

            SourceType       = sourcetype;
            BindingParameter = bindingParameter;
            Mapping          = mapping;
        }
Exemple #4
0
        internal new static RebindCollectionResult <string> Rebind(Type sourceType, IAzureSearchMapping mapping, Expression selector)
        {
            var parameter = Expression.Parameter(typeof(Document), "h");
            var visitor   = new MemberProjectionExpressionVisitor(sourceType, parameter, mapping);

            Argument.EnsureNotNull(nameof(selector), selector);

            var materializer = visitor.Visit(selector);

            return(new RebindCollectionResult <string>(materializer, visitor.fieldNames, parameter));
        }
Exemple #5
0
        /// <summary>
        /// Create a new AzureSearchQueryProvider for a given connection, logger and field prefix.
        /// </summary>
        /// <param name="connection">Connection to use to connect to Elasticsearch.</param>
        /// <param name="mapping">A mapping to specify how queries and results are translated.</param>
        /// <param name="log">A log to receive any information or debugging messages.</param>
        /// <param name="retryPolicy">A policy to describe how to handle network issues.</param>
        public AzureSearchQueryProvider(IAzureSearchConnection connection, IAzureSearchMapping mapping, Type searchType, ILogger logger)
        {
            Argument.EnsureNotNull(nameof(connection), connection);
            Argument.EnsureNotNull(nameof(mapping), mapping);
            Argument.EnsureNotNull(nameof(logger), logger);

            Connection = connection;
            Mapping    = mapping;
            SearchType = searchType;
            Logger     = logger;
        }
 protected CriteriaExpressionVisitor(IAzureSearchMapping mapping, Type sourceType)
 {
     Mapping    = mapping;
     SourceType = sourceType;
 }
Exemple #7
0
 internal static AzureSearchTranslateResult Translate(IAzureSearchMapping mapping, Expression e)
 {
     return(new AzureSearchQueryTranslator(mapping, FindSourceType(e)).Translate(e));
 }
Exemple #8
0
 AzureSearchQueryTranslator(IAzureSearchMapping mapping, Type sourceType)
     : base(mapping, sourceType)
 {
 }
        internal static Tuple <Expression, ParameterExpression> Rebind(Type sourceType, IAzureSearchMapping mapping, Expression selector)
        {
            var parameter = Expression.Parameter(typeof(Document), "h");
            var visitor   = new AzureSearchFieldsExpressionVisitor(sourceType, parameter, mapping);

            Argument.EnsureNotNull(nameof(selector), selector);

            return(Tuple.Create(visitor.Visit(selector), parameter));
        }
Exemple #10
0
 MemberProjectionExpressionVisitor(Type sourceType, ParameterExpression bindingParameter, IAzureSearchMapping mapping)
     : base(sourceType, bindingParameter, mapping)
 {
 }