public EntityDecorator(IElasticService elasticService, IElasticSettings elasticSettings, IEntityProvider entityProvider, IModelData modelData)
 {
     this.elasticService  = elasticService;
     this.elasticSettings = elasticSettings;
     this.entityProvider  = entityProvider;
     this.modelData       = modelData;
 }
Exemple #2
0
 public EntityProvider(ITranslator translator, IElasticService elasticService, IElasticSettings elasticSettings, IModelData modelData)
 {
     this.translator      = translator;
     this.elasticService  = elasticService;
     this.elasticSettings = elasticSettings;
     this.modelData       = modelData;
 }
        public ElasticSearchRepository(
            IElasticSettings configuration,
            ILogger logger)
        {
            Configuration = configuration;
            _logger       = logger;
            IndexName     = configuration.IndexName;

            var connectionSettings = new ConnectionSettings(new Uri(configuration.SearchUrl)).DefaultIndex(IndexName);

            if (HasCredentials())
            {
                ApplyAuthentication(connectionSettings);
            }
            Client = new ElasticClient(connectionSettings);
        }
        public IElasticClient GetElasticClient <T>(IElasticSettings settings, ElasticQueryResult <T> onResult = null) where T : TreeRecord
        {
            var connectionUri  = new Uri(settings.BaseUrl);
            var connectionPool = new SingleNodeConnectionPool(connectionUri);

            var connectionSettings = new ConnectionSettings(connectionPool,
                                                            (serializer, values) => new JsonNetSerializer(
                                                                serializer, values, null, null,
                                                                new[] { new ExpandoObjectConverter() }));

            connectionSettings.DefaultIndex(settings.DefaultIndex);
            if (!string.IsNullOrEmpty(settings.Username))
            {
                connectionSettings.BasicAuthentication(settings.Username, settings.Password);
            }

            if (onResult != null && settings.Debug != null && (settings.Debug.FetchRequestJson || settings.Debug.FetchResponseJson))
            {
                connectionSettings
                .DisableDirectStreaming()
                .OnRequestCompleted(details =>
                {
                    if (settings.Debug.FetchRequestJson && details.RequestBodyInBytes != null)
                    {
                        onResult.RequestRaw = Encoding.UTF8.GetString(details.RequestBodyInBytes);
                    }

                    if (settings.Debug.FetchResponseJson && details.ResponseBodyInBytes != null)
                    {
                        onResult.ResponseRaw = Encoding.UTF8.GetString(details.ResponseBodyInBytes);
                    }
                });
            }

            connectionSettings.ThrowExceptions();

            return(new ElasticClient(connectionSettings));
        }
Exemple #5
0
 public ElasticService(IElasticClientProvider clientProvider, IElasticSettings elasticSettings)
 {
     this.clientProvider  = clientProvider;
     this.elasticSettings = elasticSettings;
 }