public SyncKustoTableWorker( IKustoClient kustoClient, IDocDbClient docDbClient, ILoggerFactory loggerFactory, IConfiguration configuration) { _kustoClient = kustoClient; _docDbClient = docDbClient; _logger = loggerFactory.CreateLogger <SyncKustoTableWorker>(); _kustoSettings = configuration.GetConfiguredSettings <KustoSettings>(); _jsonSerializer = new JsonSerializer(); _jsonSerializer.Converters.Add(new StringEnumConverter()); _jsonSerializer.ContractResolver = new DefaultContractResolver() { NamingStrategy = new CamelCaseNamingStrategy() { OverrideSpecifiedNames = false } }; }
public KustoRepo(IServiceProvider serviceProvider, ILoggerFactory loggerFactory) { logger = loggerFactory.CreateLogger <KustoRepo <T> >(); var configuration = serviceProvider.GetRequiredService <IConfiguration>(); var kustoDataSettings = configuration.GetConfiguredSettings <KustoDataSettings>(); var prop = kustoDataSettings.GetType().GetProperties() .FirstOrDefault(p => { var customAttr = p.GetCustomAttribute <MappedModelAttribute>(); if (customAttr != null && customAttr.ModelType == typeof(T)) { return(true); } return(false); }); if (prop == null) { throw new Exception($"Missing backend mapping for model: {typeof(T).Name}"); } kustoSettings = prop.GetValue(kustoDataSettings) as KustoSettings; kustoClient = new KustoClient(serviceProvider, loggerFactory, kustoSettings); }