/// <summary> /// Merges the calculated data. /// </summary> /// <param name="table">The table.</param> /// <param name="side">The side.</param> /// <param name="field">The field.</param> /// <param name="sql">The SQL.</param> /// <param name="dataSource">The data source.</param> /// <param name="cancelToken">The cancel token.</param> /// <returns>System.Data.DataTable.</returns> private DataTable MergeCalculatedData(DataTable table, string side, string field, string sql, DataSourceBase dataSource, CancellationTokenSource cancelToken) { string name = side + "_" + field; string file = Alias.Debug + this.Model.GetName() + "." + name + ".sql"; var query = new QueryMessageModel(sql, name); query.LogQuery(file); var results = dataSource.ExecuteQuery(sql, cancelToken.Token); query.SetCount(results); query.LogQuery(file); this.Model.Queries.Add(query); if (results.Tables.Count == 0) { return(null); } var data = results.MergeAll(); // var data = results.Tables[0]; data = data.ListAggr(); data.Columns[0].ColumnName = Alias.Primary_Key; data.PrimaryKey = new[] { data.Columns[0] }; table.InnerJoin <string>(Alias.Primary_Key, data); data.Columns[1].ColumnName = side + "_" + field; return(data); }