public SearchQueryHandler(ILuceneReaderService luceneReaderService, AzureLuceneConfiguration azureLuceneConfiguration, ILogger <SearchQueryHandler> logger) { _luceneReaderService = luceneReaderService; AzureLuceneConfiguration = azureLuceneConfiguration; _logger = logger; }
public RebuildIndicesHandler(AzureLuceneConfiguration azureLuceneConfiguration, ISQLService SQLservice , ILuceneReaderService luceneReaderService, ILogger <RebuildIndicesHandler> logger) { AzureLuceneConfiguration = azureLuceneConfiguration; _logger = logger; _SQLservice = SQLservice; _luceneReaderService = luceneReaderService; }
// This method gets called by the runtime. Use this method to add services to the container. // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940 public void ConfigureServices(IServiceCollection services) { services.AddControllers().AddJsonOptions(options => { options.JsonSerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.CamelCase; options.JsonSerializerOptions.IgnoreNullValues = true; var isJsonResponseModeSetToDebug = Configuration["JsonResponseMode"].Equals("debug", StringComparison.InvariantCultureIgnoreCase); options.JsonSerializerOptions.WriteIndented = isJsonResponseModeSetToDebug; // production mode will be condensed }); //Add MemoryCache services.AddMemoryCache(setup => { setup.ExpirationScanFrequency = TimeSpan.FromMinutes(1); //in debug you can make it 1 minute. In production, it should 5 minutes or more }); //Add AzureLuceneConfiguration var luceneConfig = new AzureLuceneConfiguration(); Configuration.Bind("LuceneConfiguration", luceneConfig); // binding configuration to typed config services.AddSingleton(luceneConfig); services.AddSingleton <ILuceneReaderService, AzureInMemoryCachedLuceneReader>(); //Add SQL Service services.AddTransient <ISQLService, SQLDataService>(); services.AddCors(options => { options.AddPolicy(_allowSpecificOrigins, builder => { builder.WithOrigins("*"); builder.AllowAnyHeader(); builder.AllowAnyMethod(); }); }); services.AddHttpContextAccessor(); services.AddMediatR(typeof(Startup)); services.AddValidatorsFromAssembly(typeof(Startup).Assembly); services.AddTransient(typeof(IPipelineBehavior <, >), typeof(ValidatorBehavior <,>)); }