static async Task Main(string[] args) { Console.OutputEncoding = Encoding.UTF8; IConfiguration config = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json") .Build(); var elasticsearchSettings = new ElasticsearchSettings(); config.Bind(nameof(ElasticsearchSettings), elasticsearchSettings); var unitOfWork = new UnitOfWork(); var printService = new PrintService(); var elasticsearchService = new ElasticsearchService(elasticsearchSettings, unitOfWork, printService); await elasticsearchService.SeedDataAsync(); printService.PrintInfo($"Enter sesrch text (or quit to exit)...{Environment.NewLine}", false); // input search text: "1", "1st", "first", "one", "One", "ONe", "First", "FIRST", "FiRsT", "2nd", "avenue", "Avenue", "1 ave", "1 avenue", "ave" while (true) { Console.Write("> "); string search = Console.ReadLine(); if (search.Equals("quit", StringComparison.InvariantCultureIgnoreCase)) { break; } var result = await elasticsearchService.SearchAsync(search); printService.PrintInfo(result); printService.PrintInfo($"Total items founded by search='{search}': {result.Count()}{Environment.NewLine}", false); } }
/// <summary> /// Main extension method for configuring Audit.CRUD and its dependencies /// </summary> /// <param name="elasticsearchSettings">Connection settings with elasticsearch pool</param> public static void UseAuditCRUD(this IServiceCollection services, ElasticsearchSettings elasticsearchSettings) { services.AddElasticsearchConfiguration(elasticsearchSettings); services.AddScoped <AuditCRUDDbContext>(); services.AddScoped <IAuditLogRepository, AuditLogRepository>(); services.AddScoped <IAuditCRUD, AuditCRUDService>(); }
public static void AddElasticSearch(this IServiceCollection services, IConfiguration configuration) { services.Configure <ElasticsearchSettings>(configuration.GetSection("Elasticsearch")); services.AddScoped <IElasticService>(servicesProvider => { ElasticsearchSettings settings = servicesProvider.GetRequiredService <IOptions <ElasticsearchSettings> >().Value; Uri uri = new Uri(settings.Url); ConnectionSettings connectionSettings = new ConnectionSettings(uri) .DefaultIndex(settings.Index) .DefaultMappingFor <PhotoDocument>(m => m.IdProperty(p => p.Id)); IElasticClient elasticClient = new ElasticClient(connectionSettings); return(new ElasticService(settings.Index, elasticClient)); }); }
public ElasticsearchService(ElasticsearchSettings elasticsearchSettings, IUnitOfWork unitOfWork, IPrintService printService) { if (elasticsearchSettings == null) { throw new ArgumentException("Value cannot be null or empty.", nameof(elasticsearchSettings)); } _unitOfWork = unitOfWork ?? throw new ArgumentNullException(nameof(unitOfWork)); _printService = printService ?? throw new ArgumentNullException(nameof(printService)); indexName = elasticsearchSettings.IndexName; var settings = new ConnectionSettings(new Uri(elasticsearchSettings.ConnectionString)); settings.ThrowExceptions(alwaysThrow: true); settings.DisableDirectStreaming(); settings.DefaultIndex(indexName); settings.PrettyJson(); // good for DEBUG _client = new ElasticClient(settings); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddControllers(); services.AddScoped <IServicoAlimentacao, ServicoAlimentacao>(); services.AddScoped <IServicoAlbum, ServicoAlbum>(); services.AddMvc(option => option.EnableEndpointRouting = false) .SetCompatibilityVersion(CompatibilityVersion.Version_3_0) .AddNewtonsoftJson(opt => opt.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore); //services.AddHttpClient(); services.AddCors(o => o.AddPolicy("MyPolicy", builder => { builder.AllowAnyOrigin() .AllowAnyMethod() .AllowAnyHeader(); })); //bind object model from configuration ElasticsearchSettings elasticsearchSettings = Configuration.GetSection("ElasticsearchSettings").Get <ElasticsearchSettings>(); //add it to services services.AddSingleton(elasticsearchSettings); }
/// <summary> /// Configures and registers elasticsearch instance /// </summary> /// <param name="elasticsearchSettings">Connection settings with elasticsearch pool</param> public static void AddElasticsearchConfiguration(this IServiceCollection services, ElasticsearchSettings elasticsearchSettings) { var uri = new Uri(elasticsearchSettings.Uri); var pool = new SingleNodeConnectionPool(uri); var connectionSettings = new ConnectionSettings(pool, JsonNetSerializer.Default).DefaultIndex(elasticsearchSettings.Index); var client = new ElasticClient(connectionSettings); services.Add(ServiceDescriptor.Singleton <IElasticClient>(client)); }
public ServicoAlbum( ElasticsearchSettings elasticsearchSettings ) { _elasticsearchSettings = elasticsearchSettings; }
public void Init() { _providerSettingsMock = new Mock <IProvideSettings>(); _sut = new ElasticsearchSettings(_providerSettingsMock.Object); }
public ServicoAlimentacao( ElasticsearchSettings elasticsearchSettings ) { _elasticsearchSettings = elasticsearchSettings; }