public QpUrlResolver( ICacheProvider cacheProvider, IMetaInfoRepository metaInfoRepository, QpSiteStructureCacheSettings qpSchemeSettings) { _cacheProvider = cacheProvider; _metaInfoRepository = metaInfoRepository; _qpSchemeSettings = qpSchemeSettings; }
public UniversalAbstractItemFactory(ICacheProvider cacheProvider, IQpContentCacheTagNamingProvider qpContentCacheTagNamingProvider, IItemDefinitionRepository repository, QpSiteStructureCacheSettings cacheSettings, QpSiteStructureBuildSettings buildSettings) { _repository = repository; _cacheProvider = cacheProvider; _qpContentCacheTagNamingProvider = qpContentCacheTagNamingProvider; _cacheSettings = cacheSettings; _buildSettings = buildSettings; }
public SimpleAbstractItemStorageProvider( ICacheProvider cacheProvider, IAbstractItemStorageBuilder builder, IQpContentCacheTagNamingProvider qpContentCacheTagNamingProvider, QpSiteStructureBuildSettings buildSettings, QpSiteStructureCacheSettings cacheSettings) { _builder = builder; _cacheProvider = cacheProvider; _qpContentCacheTagNamingProvider = qpContentCacheTagNamingProvider; _cacheSettings = cacheSettings; _buildSettings = buildSettings; }
private static QpUrlResolver CreateMockedUrlResolver(IMetaInfoRepository metaInfoRepository) { var cacheSettings = new QpSiteStructureCacheSettings { ItemDefinitionCachePeriod = TimeSpan.FromSeconds(30), QpSchemeCachePeriod = TimeSpan.FromSeconds(30), SiteStructureCachePeriod = TimeSpan.FromSeconds(30) }; var cache = new MemoryCache(new MemoryCacheOptions()); var cacheProvider = new VersionedCacheCoreProvider(cache); var urlResolver = new QpUrlResolver(cacheProvider, metaInfoRepository, cacheSettings); return(urlResolver); }
public NameConventionalItemDefinitionProvider( ITypeFinder typeFinder, IItemDefinitionRepository repository, ICacheProvider cacheProvider, IQpContentCacheTagNamingProvider qpContentCacheTagNamingProvider, QpSiteStructureCacheSettings cacheSettings, QpSiteStructureBuildSettings buildSettings) { _typeFinder = typeFinder; _repository = repository; _cacheProvider = cacheProvider; _qpContentCacheTagNamingProvider = qpContentCacheTagNamingProvider; _cacheSettings = cacheSettings; _buildSettings = buildSettings; }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddMvc(); services.AddSwaggerGen(o => { o.SwaggerDoc(SWAGGER_VERSION, new OpenApiInfo { Title = SWAGGER_TITLE, Version = SWAGGER_VERSION }); var xmlFile = $"{System.Reflection.Assembly.GetExecutingAssembly().GetName().Name}.xml"; var xmlPath = System.IO.Path.Combine(AppContext.BaseDirectory, xmlFile); o.IncludeXmlComments(xmlPath); }); services.AddMemoryCache(); services.AddSingleton <ICacheProvider, VersionedCacheCoreProvider>(); services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>(); services.AddScoped(sp => { var uow = sp.GetService <IUnitOfWork>(); return(new DBConnector(uow.Connection)); }); services.AddScoped <IAuthenticationService, AuthenticationService>(); services.AddScoped <IUnitOfWork, UnitOfWork>(sp => { var httpContextAccessor = sp.GetService <IHttpContextAccessor>(); if (!httpContextAccessor.HttpContext.Request.Headers.TryGetValue("Customer-Code", out var customerCode)) { throw new Exception("Customer-Code header must be provided."); } var config = Configuration.GetSection("ConfigurationService").Get <ConfigurationServiceConfig>(); if (!String.IsNullOrEmpty(config.Url) && !String.IsNullOrEmpty(config.Token)) { DBConnector.ConfigServiceUrl = config.Url; DBConnector.ConfigServiceToken = config.Token; } CustomerConfiguration dbConfig = DBConnector.GetCustomerConfiguration(customerCode.ToString()).Result; return(new UnitOfWork(dbConfig.ConnectionString, dbConfig.DbType.ToString())); }); services.AddScoped <IMetaInfoRepository, MetaInfoRepository>(); services.AddScoped <INetNameQueryAnalyzer, NetNameQueryAnalyzer>(); services.AddScoped <IItemDefinitionRepository, ItemDefinitionRepository>(); services.AddScoped <IAbTestRepository, AbTestRepository>(); var qpUrlResolverCacheSettings = new QpSiteStructureCacheSettings { QpSchemeCachePeriod = new TimeSpan(0, 1, 0) }; services.AddSingleton(typeof(QpSiteStructureCacheSettings), qpUrlResolverCacheSettings); services.AddScoped <IQpUrlResolver, QpUrlResolver>(); services.AddAuthentication(options => { options.DefaultAuthenticateScheme = QpAuthDefaults.AuthenticationScheme; options.DefaultChallengeScheme = QpAuthDefaults.AuthenticationScheme; }).AddQpAuth(authOptions => { authOptions.Settings = Configuration.GetSection("QpAuthSettings").Get <QpAuthSettings>(); }); services.AddAuthorization(options => { options.DefaultPolicy = new AuthorizationPolicy( new List <IAuthorizationRequirement> { new QpUserRequirement() }, new[] { QpAuthDefaults.AuthenticationScheme }); }); services.AddCacheTagServices(options => options.InvalidateByMiddleware( @"^(?!\/api\/).+$")); //инвалидировать только если запрос начинается с /api/ services.AddHealthChecks(); services.AddCors(options => { options.AddPolicy("CorsPolicy", builder => builder.AllowAnyOrigin() .AllowAnyMethod() .AllowAnyHeader() ); }); }