public TemplatesController( ILogger <TemplatesController> logger, ITemplateRepository templateRepository, IEtlParseService parseService ) { _logger = logger; this.templateRepository = templateRepository; this.parseService = parseService; }
public XmlFileTemplateRepository( IEtlParseService etlParser, IDirectoryContents templateDirectoryContents, ILogger <XmlFileTemplateRepository> logger ) { this.etlParser = etlParser; this.logger = logger; var foundErrorsInXml = !InitTagData(templateDirectoryContents); foundErrorsInXml |= !GetTemplateDictionary(templateDirectoryContents, out var templatesMutableDictionary); var nrOfItemsBeforeCheckingEtl = templatesMutableDictionary.Count; templatesMutableDictionary = RemoveInvalidEtlTemplates(templatesMutableDictionary); FoundErrorsInTemplates = foundErrorsInXml || (nrOfItemsBeforeCheckingEtl != templatesMutableDictionary.Count); templates = templatesMutableDictionary.ToImmutableDictionary(StringComparer.InvariantCultureIgnoreCase); }
public CachedTemplateRepository( IEtlParseService etlParser, IMemoryCache memoryCache, IHostEnvironment hostEnvironment, IConfiguration configuration, ILogger <CachedTemplateRepository> logger, ILoggerFactory loggerFactory ) { this.logger = logger; if (!memoryCache.TryGetValue(templatesCacheKey, out templateRepository)) { logger.LogInformation("Refreshing templates-dictionary."); var templateDirectoryPath = GetTemplateDirectoryPath(configuration); var templateDirectoryContents = GetTemplateDirectoryContents(templateDirectoryPath, hostEnvironment); templateRepository = new XmlFileTemplateRepository(etlParser, templateDirectoryContents, loggerFactory.CreateLogger <XmlFileTemplateRepository>()); memoryCache.Set(templatesCacheKey, templateRepository, hostEnvironment.ContentRootFileProvider.Watch($"{templateDirectoryPath}\\*\\*.xml")); } }