public static void BuildTable(ITableBuilder tableBuilder, IDataExtensionRetrieval tableData) { DmesgIsoLogParsedResult parsedResult = tableData.QueryOutput <DmesgIsoLogParsedResult>( DataOutputPath.Create(SourceParserIds.DmesgIsoLog, DmesgIsoDataCooker.CookerId, "ParsedResult")); var fileNames = parsedResult.FileToMetadata.Keys.ToArray(); var fileNameProjection = Projection.Index(fileNames.AsReadOnly()); var lineCountProjection = fileNameProjection.Compose( fileName => parsedResult.FileToMetadata[fileName].LineCount); tableBuilder.SetRowCount(fileNames.Length) .AddColumn(FileNameColumn, fileNameProjection) .AddColumn(LineCountColumn, lineCountProjection); }
public static void BuildTable(ITableBuilder tableBuilder, IDataExtensionRetrieval tableData) { DmesgIsoLogParsedResult parsedResult = tableData.QueryOutput <DmesgIsoLogParsedResult>( DataOutputPath.Create(SourceParserIds.DmesgIsoLog, DmesgIsoDataCooker.CookerId, "ParsedResult")); var logEntries = parsedResult.LogEntries; var baseProjection = Projection.Index(logEntries); var fileNameProjection = baseProjection.Compose(x => x.filePath); var lineNumberProjection = baseProjection.Compose(x => x.lineNumber); var entityProjection = baseProjection.Compose(x => x.entity); var topicProjection = baseProjection.Compose(x => x.topic); var timestampProjection = baseProjection.Compose(x => x.timestamp); var metadataProjection = baseProjection.Compose(x => x.metadata); var messageProjection = baseProjection.Compose(x => x.message); var config = new TableConfiguration("Default") { Columns = new[] { FileNameColumn, EntityColumn, TableConfiguration.PivotColumn, MessageNumberColumn, TopicColumn, MessageColumn, MetadataColumn, TableConfiguration.GraphColumn, TimestampColumn }, Layout = TableLayoutStyle.GraphAndTable, }; config.AddColumnRole(ColumnRole.StartTime, TimestampColumn); config.AddColumnRole(ColumnRole.EndTime, TimestampColumn); tableBuilder.AddTableConfiguration(config) .SetDefaultTableConfiguration(config) .SetRowCount(logEntries.Count) .AddColumn(FileNameColumn, fileNameProjection) .AddColumn(MessageNumberColumn, lineNumberProjection) .AddColumn(EntityColumn, entityProjection) .AddColumn(TopicColumn, topicProjection) .AddColumn(MessageColumn, messageProjection) .AddColumn(TimestampColumn, timestampProjection) .AddColumn(MetadataColumn, metadataProjection); }
public static void BuildTable(ITableBuilder tableBuilder, IDataExtensionRetrieval tableData) { DmesgIsoLogParsedResult parsedResult = tableData.QueryOutput <DmesgIsoLogParsedResult>( DataOutputPath.ForSource(SourceParserIds.DmesgIsoLog, DmesgIsoDataCooker.CookerId, nameof(DmesgIsoDataCooker.ParsedResult))); var logEntries = parsedResult.LogEntries; var baseProjection = Projection.Index(logEntries); var fileNameProjection = baseProjection.Compose(x => x.filePath); var logNumberProjection = baseProjection.Compose(x => x.lineNumber); var timestampProjection = baseProjection.Compose(x => x.timestamp); var rawLogProjection = baseProjection.Compose(x => x.rawLog); var columnsConfig = new TableConfiguration("Default") { Columns = new[] { FileNameColumn, TableConfiguration.PivotColumn, LogNumberColumn, LogColumn, TableConfiguration.GraphColumn, LogTimestampColumn }, }; columnsConfig.AddColumnRole(ColumnRole.StartTime, LogTimestampColumn); columnsConfig.AddColumnRole(ColumnRole.EndTime, LogTimestampColumn); tableBuilder.AddTableConfiguration(columnsConfig) .SetDefaultTableConfiguration(columnsConfig) .SetRowCount(logEntries.Count) .AddColumn(FileNameColumn, fileNameProjection) .AddColumn(LogNumberColumn, logNumberProjection) .AddColumn(LogColumn, rawLogProjection) .AddColumn(LogTimestampColumn, timestampProjection); }