public CodeMatchingService( IHttpContextAccessor httpContextAccessor, ICodeMatchingCache matchingCache, ICodeMatchingOption matchingOption, IHostingEnvironment env) { this.httpContextAccessor = httpContextAccessor; this.matchingCache = matchingCache; this.matchingOption = matchingOption; this.env = env; }
public CodeMatchingCache( int cultureCacheCapacity, int perCultureCapacity, ICodeMatchingOption matchingOption, ICultureOption cultureOption, ICultureFileCache cultureFileCache) { this.cultureCache = new Cache <string, CulturePage>(cultureCacheCapacity); this.perCultureCapacity = perCultureCapacity; this.matchingOption = matchingOption; this.cultureOption = cultureOption; this.cultureFileCache = cultureFileCache; }
public static IServiceCollection AddCodeMatching( this IServiceCollection services, string resourceDirectory = "/Strings", bool isCaseSensitive = false, int culturePageCacheSize = 100, int cultureCacheSize = 20) { services.AddSingleton <ICodeMatchingOption>(new CodeMatchingOption(resourceDirectory, isCaseSensitive)); services.AddSingleton <ICodeMatchingCache>(provider => { ICodeMatchingOption option = provider.GetRequiredService <ICodeMatchingOption>(); ICultureOption cultureOption = provider.GetRequiredService <ICultureOption>(); ICultureFileCache cultureFileCache = provider.GetRequiredService <ICultureFileCache>(); return(new CodeMatchingCache(cultureCacheSize, culturePageCacheSize, option, cultureOption, cultureFileCache)); }); services.AddScoped <ICodeMatchingService, CodeMatchingService>(); return(services); }