internal KustoDataService() { KustoConnectionStringBuilder kcsb = new KustoConnectionStringBuilder($"https://ingest-{ServiceNameAndRegion}.kusto.windows.net") .WithAadManagedIdentity("system"); DirectJsonMappingResolver directJsonMappingResolver = new DirectJsonMappingResolver(); _httpRequestLogsTable = new KustoTable <HttpRequestLogEntry>(kcsb, DatabaseName, "UrlAccessLogs", directJsonMappingResolver); _scriptExecutionLogsTable = new KustoTable <ScriptExecutionLogEntry>(kcsb, DatabaseName, "ScriptExecLogs", directJsonMappingResolver); }
/// <summary> /// Compares the given column names with the column names generated by <see cref="DirectJsonMappingResolver"/> /// for the given type. /// </summary> /// <typeparam name="T">Data class whose column names will be resolved by <see cref="DirectJsonMappingResolver"/></typeparam> /// <param name="expectedColumnNames">Column names to compare. Order of the items is unimportant.</param> private void CompareMappings <T>(string[] expectedColumnNames) where T : IKustoTableRow { DirectJsonMappingResolver mappingResolver = new DirectJsonMappingResolver(); IEnumerable <ColumnMapping> mappingCollection = mappingResolver.GetColumnMappings <T>(); List <string> mappedColumnNames = mappingCollection.Select(m => m.ColumnName).ToList(); Assert.IsTrue(!mappedColumnNames.Except(expectedColumnNames).Any(), $"The following columns shouldn't have been mapped, but they were: { string.Join(", ", mappedColumnNames.Except(expectedColumnNames))}"); Assert.IsTrue(!expectedColumnNames.Except(mappedColumnNames).Any(), $"The following columns should have been mapped, but they weren't: { string.Join(", ", expectedColumnNames.Except(mappedColumnNames))}"); }
internal KustoDataService() { if (string.IsNullOrWhiteSpace(DatabaseName)) { throw new InvalidOperationException($"{nameof(DatabaseName)} was not correctly configured. " + "Make sure \"kusto_db_name\" is properly assigned in function app configuration."); } KustoConnectionStringBuilder kcsb = new KustoConnectionStringBuilder($"https://ingest-{ServiceNameAndRegion}.kusto.windows.net") .WithAadManagedIdentity("system"); DirectJsonMappingResolver directJsonMappingResolver = new DirectJsonMappingResolver(); _httpRequestLogsTable = new KustoTable <HttpRequestLogEntry>(kcsb, DatabaseName, "UrlAccessLogs", directJsonMappingResolver); _scriptExecutionLogsTable = new KustoTable <ScriptExecutionLogEntry>(kcsb, DatabaseName, "ScriptExecLogs", directJsonMappingResolver); }