private StandardTableDataCM ParseQueryResult(QueryResult <object> queryResult) { var parsedObjects = new List <JObject>(); if (queryResult.Records.Count > 0) { parsedObjects = queryResult.Records.Select(record => ((JObject)record)).ToList(); } var countOfObjectTableCell = new TableCellDTO() { Cell = new KeyValueDTO() { Key = "Count of Objects", Value = queryResult.Records.Count.ToString() } }; List <TableRowDTO> list = new List <TableRowDTO>(); foreach (var row in parsedObjects.Select(parsedObject => parsedObject.Properties().Where(y => y.Value.Type == JTokenType.String && !string.IsNullOrEmpty(y.Value.Value <string>())).Select(y => new TableCellDTO { Cell = new KeyValueDTO { Key = y.Name, Value = y.Value.Value <string>() } }).ToList())) { row.Add(countOfObjectTableCell); list.Add(new TableRowDTO() { Row = row }); } if (!queryResult.Records.Any()) { list.Add(new TableRowDTO() { Row = new List <TableCellDTO>() { countOfObjectTableCell } }); } return(new StandardTableDataCM { Table = list }); }
public override async Task Run() { var eventCrate = Payload.CratesOfType <EventReportCM>().FirstOrDefault() ?.Get <EventReportCM>() ?.EventPayload; KeyValueListCM changedFiles = null; if (eventCrate != null) { changedFiles = eventCrate .CrateContentsOfType <KeyValueListCM>(x => x.Label == "ChangedFiles") .SingleOrDefault(); } if (changedFiles == null) { RequestPlanExecutionTermination("File list was not found in the payload."); } if (ActivityUI.AllSpreadsheetsOption.Selected) { var rows = new List <TableRowDTO>(); foreach (var changedFile in changedFiles.Values) { var row = new TableRowDTO(); row.Row.Add(TableCellDTO.Create(SpreadsheetIdLabel, changedFile.Key)); row.Row.Add(TableCellDTO.Create(SpreadsheetNameLabel, changedFile.Value)); rows.Add(row); } var tableData = new StandardTableDataCM(false, rows); Payload.Add(Crate.FromContent(RunTimeCrateLabel, tableData)); Success(); } else { var hasFileId = changedFiles.Values.Any(x => x.Key == ActivityUI.SpreadsheetList.Value); if (!hasFileId) { RequestPlanExecutionTermination(); } else { var rows = new List <TableRowDTO>(); var changedFile = changedFiles.Values.Where(x => x.Key == ActivityUI.SpreadsheetList.Value).First(); var row = new TableRowDTO(); row.Row.Add(TableCellDTO.Create(SpreadsheetIdLabel, changedFile.Key)); row.Row.Add(TableCellDTO.Create(SpreadsheetNameLabel, changedFile.Value)); rows.Add(row); var tableData = new StandardTableDataCM(false, rows); Payload.Add(Crate.FromContent(RunTimeCrateLabel, tableData)); Success(); } } }