internal static Tuple<Expression, ParameterExpression> Rebind(Type sourceType, IElasticMapping mapping, Expression selector) { var parameter = Expression.Parameter(typeof(Hit), "h"); var visitor = new ElasticFieldsExpressionVisitor(sourceType, parameter, mapping); Argument.EnsureNotNull("selector", selector); return Tuple.Create(visitor.Visit(selector), parameter); }
internal static new Projection Rebind(ParameterExpression parameter, string prefix, IElasticMapping mapping, Expression selector) { var visitor = new ProjectionExpressionVisitor(parameter, prefix, mapping); Argument.EnsureNotNull("selector", selector); var materialization = visitor.Visit(selector); return new Projection(visitor.fieldNames, materialization); }
protected ElasticFieldsProjectionExpressionVisitor(ParameterExpression parameter, IElasticMapping mapping) { Argument.EnsureNotNull("parameter", parameter); Argument.EnsureNotNull("mapping", mapping); Parameter = parameter; Mapping = mapping; }
/// <summary> /// Create a new SearchRequestFormatter for the given connection, mapping and search request. /// </summary> /// <param name="connection">The ElasticConnection to prepare the SearchRequest for.</param> /// <param name="mapping">The IElasticMapping used to format the SearchRequest.</param> /// <param name="searchRequest">The SearchRequest to be formatted.</param> public SearchRequestFormatter(IElasticConnection connection, IElasticMapping mapping, SearchRequest searchRequest) { this.connection = connection; this.mapping = mapping; this.searchRequest = searchRequest; body = new Lazy <string>(() => CreateBody().ToString(connection.Options.Pretty ? Formatting.Indented : Formatting.None)); }
/// <summary> /// Create a new SearchRequestFormatter for the given connection, mapping and search request. /// </summary> /// <param name="connection">The ElasticConnection to prepare the SearchRequest for.</param> /// <param name="mapping">The IElasticMapping used to format the SearchRequest.</param> /// <param name="searchRequest">The SearchRequest to be formatted.</param> public SearchRequestFormatter(IElasticConnection connection, IElasticMapping mapping, SearchRequest searchRequest) { this.connection = connection; this.mapping = mapping; this.searchRequest = searchRequest; body = new Lazy<string>(() => CreateBody().ToString(connection.Options.Pretty ? Formatting.Indented : Formatting.None)); }
internal static new RebindCollectionResult<string> Rebind(Type sourceType, IElasticMapping mapping, Expression selector) { var parameter = Expression.Parameter(typeof(Hit), "h"); var visitor = new MemberProjectionExpressionVisitor(sourceType, parameter, mapping); Argument.EnsureNotNull("selector", selector); var materializer = visitor.Visit(selector); return new RebindCollectionResult<string>(materializer, visitor.fieldNames, parameter); }
public ElasticFieldsExpressionVisitor(string prefix, ParameterExpression bindingParameter, IElasticMapping mapping) { Argument.EnsureNotNull("bindingParameter", bindingParameter); Argument.EnsureNotNull("mapping", mapping); Prefix = prefix; BindingParameter = bindingParameter; Mapping = mapping; }
public ElasticFieldsExpressionVisitor(Type sourcetype, ParameterExpression bindingParameter, IElasticMapping mapping) { Argument.EnsureNotNull("bindingParameter", bindingParameter); Argument.EnsureNotNull("mapping", mapping); SourceType = sourcetype; BindingParameter = bindingParameter; Mapping = mapping; }
/// <summary> /// Initializes a new instance of the <see cref="ElasticContext"/> class. /// </summary> /// <param name="connection">The information on how to connect to the Elasticsearch server.</param> /// <param name="mapping">The object that helps map queries (optional, defaults to <see cref="TrivialElasticMapping"/>).</param> /// <param name="log">The object which logs information (optional, defaults to <see cref="NullLog"/>).</param> /// <param name="retryPolicy">The object which controls retry policy for the search (optional, defaults to <see cref="RetryPolicy"/>).</param> public ElasticContext(IElasticConnection connection, IElasticMapping mapping = null, ILog log = null, IRetryPolicy retryPolicy = null) { Argument.EnsureNotNull(nameof(connection), connection); Connection = connection; Log = log ?? NullLog.Instance; Mapping = mapping ?? new TrivialElasticMapping(connection, Log); RetryPolicy = retryPolicy ?? new RetryPolicy(Log); }
public ElasticFieldsExpressionVisitor(Type sourcetype, ParameterExpression bindingParameter, IElasticMapping mapping) { Argument.EnsureNotNull(nameof(bindingParameter), bindingParameter); Argument.EnsureNotNull(nameof(mapping), mapping); SourceType = sourcetype; BindingParameter = bindingParameter; Mapping = mapping; }
public ElasticFieldsExpressionVisitor(Type sourcetype, ParameterExpression bindingParameter, IElasticMapping mapping) { Argument.CheckNotNull("bindingParameter", bindingParameter); Argument.CheckNotNull("mapping", mapping); SourceType = sourcetype; BindingParameter = bindingParameter; Mapping = mapping; }
internal static new RebindCollectionResult <string> Rebind(string prefix, IElasticMapping mapping, Expression selector) { var parameter = Expression.Parameter(typeof(Hit), "h"); var visitor = new MemberProjectionExpressionVisitor(prefix, parameter, mapping); Argument.EnsureNotNull("selector", selector); var materializer = visitor.Visit(selector); return(new RebindCollectionResult <string>(materializer, visitor.fieldNames, parameter)); }
public ElasticRequestProcessor(IElasticConnection connection, IElasticMapping mapping, IRetryPolicy retryPolicy) { Argument.CheckNotNull("connection", connection); Argument.CheckNotNull("mapping", mapping); Argument.CheckNotNull("retryPolicy", retryPolicy); this.connection = connection; this.mapping = mapping; this.retryPolicy = retryPolicy; }
public ElasticRequestProcessor(IElasticConnection connection, IElasticMapping mapping, ILog log, IRetryPolicy retryPolicy) { Argument.EnsureNotNull("connection", connection); Argument.EnsureNotNull("mapping", mapping); Argument.EnsureNotNull("log", log); Argument.EnsureNotNull("retryPolicy", retryPolicy); this.connection = connection; this.mapping = mapping; this.log = log; this.retryPolicy = retryPolicy; }
public ElasticRequestProcessor(ElasticConnection connection, IElasticMapping mapping, ILog log, IRetryPolicy retryPolicy) { Argument.EnsureNotNull("connection", connection); Argument.EnsureNotNull("mapping", mapping); Argument.EnsureNotNull("log", log); Argument.EnsureNotNull("retryPolicy", retryPolicy); this.connection = connection; this.mapping = mapping; this.log = log; this.retryPolicy = retryPolicy; }
public ElasticRequestProcessor(IElasticConnection connection, IElasticMapping mapping, ILog log, IRetryPolicy retryPolicy) { Argument.EnsureNotNull(nameof(connection), connection); Argument.EnsureNotNull(nameof(mapping), mapping); Argument.EnsureNotNull(nameof(log), log); Argument.EnsureNotNull(nameof(retryPolicy), retryPolicy); this.connection = connection; this.mapping = mapping; this.log = log; this.retryPolicy = retryPolicy; }
public VeryElasticQueryProvider(IElasticConnection connection, IElasticMapping mapping, IRetryPolicy retryPolicy) { Argument.CheckNotNull("connection", connection); Argument.CheckNotNull("mapping", mapping); Argument.CheckNotNull("retryPolicy", retryPolicy); this.Connection = connection; this.Mapping = mapping; this.RetryPolicy = retryPolicy; this.requestProcessor = new ElasticRequestProcessor(connection, mapping, retryPolicy); }
internal static FacetRebindCollectionResult Rebind(IElasticMapping mapping, Type sourceType, Expression expression) { Argument.EnsureNotNull(nameof(mapping), mapping); Argument.EnsureNotNull(nameof(expression), expression); var visitor = new FacetExpressionVisitor(mapping, sourceType); var visitedExpression = visitor.Visit(expression); var facets = new HashSet <IFacet>(visitor.GetFacets()); var materializer = GetFacetMaterializer(visitor.selectProjection, visitor.groupBy); return(new FacetRebindCollectionResult(visitedExpression, facets, visitor.bindingParameter, materializer)); }
/// <summary> /// Initializes a new instance of the <see cref="TestableElasticContext"/> class. /// </summary> /// <param name="mapping">The <see cref="IElasticMapping"/> used to define mapping between the document and object.</param> /// <param name="log">The <see cref="ILog"/> instance to receive logging information.</param> /// <param name="maxAttempts">Maximum number of attempts to try before failing.</param> /// <param name="timeout">How long to wait before failing a request.</param> public TestableElasticContext(IElasticMapping mapping = null, ILog log = null, int maxAttempts = 1, TimeSpan timeout = default(TimeSpan)) { Connection = new ElasticConnection(new Uri("http://localhost/"), timeout: timeout); Mapping = mapping ?? new ElasticMapping(true, true, true); Provider = new TestableElasticQueryProvider(this); Requests = new List <QueryInfo>(); Log = log ?? NullLog.Instance; RetryPolicy = new RetryPolicy(Log, 0, maxAttempts, NullDelay.Instance); }
public ElasticQueryProvider(ElasticConnection connection, IElasticMapping mapping, ILog log, IRetryPolicy retryPolicy, string prefix) { Argument.EnsureNotNull("connection", connection); Argument.EnsureNotNull("mapping", mapping); Argument.EnsureNotNull("log", log); Argument.EnsureNotNull("retryPolicy", retryPolicy); Connection = connection; Mapping = mapping; Log = log; RetryPolicy = retryPolicy; Prefix = prefix; }
/// <summary> /// Initializes a new instance of the <see cref="ElasticSession"/> class. /// </summary> /// <param name="connection">The information on how to connect to the Elasticsearch server.</param> /// <param name="mapping">The object that helps map queries (optional, defaults to <see cref="VeryElasticMapping"/>).</param> /// <param name="retryPolicy">The object which controls retry policy for the search (optional, defaults to <see cref="RetryPolicy"/>).</param> public ElasticSession(IElasticConnection connection, IElasticMapping mapping = null, IRetryPolicy retryPolicy = null) { this.Connection = connection; this.Mapping = mapping ?? new VeryElasticMapping( new JsonSerializerSettings { DefaultValueHandling = DefaultValueHandling.Ignore, NullValueHandling = NullValueHandling.Ignore, ConstructorHandling = ConstructorHandling.AllowNonPublicDefaultConstructor } ); this.RetryPolicy = retryPolicy ?? new RetryPolicy(); }
/// <summary> /// Create a new ElasticQueryProvider for a given connection, mapping, log, retry policy 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 ElasticQueryProvider(IElasticConnection connection, IElasticMapping mapping, ILog log, IRetryPolicy retryPolicy) { Argument.EnsureNotNull("connection", connection); Argument.EnsureNotNull("mapping", mapping); Argument.EnsureNotNull("log", log); Argument.EnsureNotNull("retryPolicy", retryPolicy); Connection = connection; Mapping = mapping; Log = log; RetryPolicy = retryPolicy; requestProcessor = new ElasticRequestProcessor(connection, mapping, log, retryPolicy); }
private ElasticQueryTranslator(IElasticMapping mapping, string prefix) { this.mapping = new ElasticFieldsMappingWrapper(mapping); this.prefix = prefix; }
ElasticQueryTranslator(IElasticMapping mapping, Type sourceType) : base(mapping, sourceType) { }
internal static ElasticTranslateResult Translate(IElasticMapping mapping, Expression e) { return(new ElasticQueryTranslator(mapping, FindSourceType(e)).Translate(e)); }
private ElasticQueryTranslator(IElasticMapping mapping, string prefix) : base(mapping, prefix) { }
/// <inheritdoc/> public ElasticFieldsMappingWrapper(IElasticMapping wrapped) { this.wrapped = wrapped; }
internal static ElasticTranslateResult Translate(IElasticMapping mapping, string prefix, Expression e) { return new ElasticQueryTranslator(mapping, prefix).Translate(e); }
/// <summary> /// Creates a new CriteriaExpressionVisitor with a given mapping and prefix. /// </summary> /// <param name="mapping">The IElasticMapping used to translate properties to fields.</param> /// <param name="prefix">The string prefix used to prepend fields</param> protected CriteriaExpressionVisitor(IElasticMapping mapping, string prefix) { Mapping = new ElasticFieldsMappingWrapper(mapping); Prefix = prefix; }
private ProjectionExpressionVisitor(ParameterExpression parameter, string prefix, IElasticMapping mapping) : base(parameter, mapping) { this.prefix = prefix; }
private MemberProjectionExpressionVisitor(string prefix, ParameterExpression bindingParameter, IElasticMapping mapping) : base(prefix, bindingParameter, mapping) { }
public SimpleCriteriaExpressionVisitor(IElasticMapping mapping, string prefix) : base(mapping, prefix) { }
internal static ElasticTranslateResult Translate(IElasticMapping mapping, Expression e) { return new ElasticQueryTranslator(mapping, FindSourceType(e)).Translate(e); }
FacetExpressionVisitor(IElasticMapping mapping, Type sourceType) : base(mapping, sourceType) { }
internal static Tuple <Expression, ParameterExpression> Rebind(Type sourceType, IElasticMapping mapping, Expression selector) { var parameter = Expression.Parameter(typeof(Hit), "h"); var visitor = new ElasticFieldsExpressionVisitor(sourceType, parameter, mapping); Argument.EnsureNotNull(nameof(selector), selector); return(Tuple.Create(visitor.Visit(selector), parameter)); }
MemberProjectionExpressionVisitor(Type sourceType, ParameterExpression bindingParameter, IElasticMapping mapping) : base(sourceType, bindingParameter, mapping) { }
public SimpleCriteriaExpressionVisitor(IElasticMapping mapping, Type sourceType) : base(mapping, sourceType) { }
public PostBodyRequestFormatter(ElasticConnection connection, IElasticMapping mapping, ElasticSearchRequest searchRequest) : base(connection, searchRequest) { this.mapping = mapping; body = new Lazy <string>(() => CreateJsonPayload().ToString(Formatting.None)); }
internal static Expression Rebind(ParameterExpression parameter, string prefix, IElasticMapping mapping, Expression selector) { var visitor = new ElasticFieldsProjectionExpressionVisitor(parameter, mapping); Argument.EnsureNotNull("selector", selector); return visitor.Visit(selector); }
internal static ElasticTranslateResult TranslateIndex <T, TAggregate>(IElasticMapping mapping, Expression <Func <T, TAggregate> > fieldExpression) { return(new ElasticQueryTranslator(mapping, null).TranslateIndex(fieldExpression)); }
internal static ElasticTranslateResult Translate(IElasticMapping mapping, string prefix, Expression e) { return(new ElasticQueryTranslator(mapping, prefix).Translate(e)); }
/// <summary> /// Initializes a new instance of the <see cref="CriteriaExpressionVisitor"/> class. /// Creates a new CriteriaExpressionVisitor with a given mapping and prefix. /// </summary> /// <param name="mapping"> /// The IElasticMapping used to translate properties to fields. /// </param> /// <param name="sourceType"> /// The string prefix used to prepend fields /// </param> protected CriteriaExpressionVisitor(IElasticMapping mapping, Type sourceType) { this.Mapping = new ElasticFieldsMappingWrapper(mapping); this.SourceType = sourceType; }
public PostBodyRequestFormatter(ElasticConnection connection, IElasticMapping mapping, ElasticSearchRequest searchRequest) : base(connection, searchRequest) { this.mapping = mapping; body = new Lazy<string>(() => CreateJsonPayload().ToString(Formatting.None)); }