public questStatus TransferResults(RunFilterRequest runFilterRequest, ResultsSet resultsSet, out FilterRunViewModel filterRunViewModel) { // Initialize questStatus status = null; filterRunViewModel = null; // Get number of entities. int numEntities = 0; status = GetNumEntities(resultsSet, out numEntities); if (!questStatusDef.IsSuccess(status)) { return(status); } // Transfer model filterRunViewModel = new FilterRunViewModel(); filterRunViewModel.NumRows = resultsSet.NumRows; filterRunViewModel.QueryResponse.TotalRecords = resultsSet.NumRows; filterRunViewModel.Id = runFilterRequest != null ? runFilterRequest.FilterId.Id : BaseId.INVALID_ID; filterRunViewModel.FilterId = runFilterRequest != null ? runFilterRequest.FilterId.Id : BaseId.INVALID_ID; foreach (KeyValuePair <string, Column> kvp in resultsSet.ResultColumns) { ColumnHeaderViewModel columnHeaderViewModel = new ColumnHeaderViewModel(); BufferMgr.TransferBuffer(kvp.Value, columnHeaderViewModel, true); columnHeaderViewModel.Name = kvp.Value.Name; columnHeaderViewModel.Label = MakeColumnLabel(kvp, numEntities); columnHeaderViewModel.Type = kvp.Value.DataTypeName; filterRunViewModel.Results.Columns.Add(columnHeaderViewModel); } foreach (dynamic _dynRow in resultsSet.Data) { DynamicRowViewModel dynamicRowViewModel = new DynamicRowViewModel(); int cidx = 0; foreach (KeyValuePair <string, object> kvp in _dynRow) { ColumnValueViewModel columnValueViewModel = new ColumnValueViewModel(); columnValueViewModel.Name = string.IsNullOrEmpty(filterRunViewModel.Results.Columns[cidx].Label) ? filterRunViewModel.Results.Columns[cidx].Name : filterRunViewModel.Results.Columns[cidx].Label; columnValueViewModel.Label = filterRunViewModel.Results.Columns[cidx].Label; columnValueViewModel.Value = kvp.Value == null ? "(null)" : kvp.Value.ToString(); dynamicRowViewModel.ColumnValues.Add(columnValueViewModel); cidx += 1; } filterRunViewModel.Results.Items.Add(dynamicRowViewModel); } return(new questStatus(Severity.Success)); }
public MainViewModel() { // TODO: // Load CSV // TODO: // These are fake. Get actual column names from CSV ColumnNames = new List <string> { "Foo", "Bar", "Numeric" }; Columns = new List <ColumnHeaderViewModel>(); foreach (var name in ColumnNames) { Data.Columns.Add(new DataColumn(name)); var col = new ColumnHeaderViewModel(ColumnNames, name); col.NameChanging += Column_NameChanging; Columns.Add(col); } UpdateDataTableFromCSVRows(); }