public void AddGroupedRow(VirtualRow row) { if (_groupedRows == null) { _groupedRows = new List<VirtualRow>(); } _groupedRows.Add(row); }
protected internal override object GetValue(DataSet dataSet, VirtualRow virtualRow) { object leftValue = _leftColumn.GetValue(dataSet, virtualRow); object rightValue = _rightColumn.GetValue(dataSet, virtualRow); if (leftValue == null || rightValue == null) { return null; } TimeSpan timeSpan = Convert.ToDateTime(leftValue) - Convert.ToDateTime(rightValue); return timeSpan.TotalDays; }
private void AddRowToMasterRowForGroup(VirtualRow row, List<VirtualRow> masterRows) { foreach (VirtualRow masterRow in masterRows) { if (RowsArePartOfSameGroup(row, masterRow)) { masterRow.AddGroupedRow(row); return; } } masterRows.Add(row); row.AddGroupedRow(row); }
protected internal override object GetValue(DataSet dataSet, VirtualRow virtualRow) { List<VirtualRow> groupedRows = virtualRow.GetGroupedRows(); int count = 0; foreach (VirtualRow row in groupedRows) { object value = row.GetColumnValue(_column); if (DataType.IsNotNull(value)) { ++count; } } return count; }
protected internal override object GetValue(DataSet dataSet, VirtualRow virtualRow) { List<VirtualRow> groupedRows = virtualRow.GetGroupedRows(); DateTime max = DateTime.MinValue; foreach (VirtualRow row in groupedRows) { object value = row.GetColumnValue(_column); if (DataType.IsNotNull(value)) { DateTime dateTimeValue = (DateTime)value; max = (dateTimeValue > max) ? dateTimeValue : max; } } return max; }
internal DataTable ExecuteDataTable(DataSet dataSet, VirtualRow outerRow) { _dataSet = dataSet; _outerRow = outerRow; List<VirtualRow> rows = ApplyFrom(); rows = ApplyJoins(rows); rows = ApplyWhere(rows); rows = ApplyGroupBy(rows); rows = ApplyHaving(rows); rows = ApplyDistinct(rows); rows = ApplyOrderBy(rows); DataTable resultsDataTable = CreateResultsDataTable(rows); return resultsDataTable; }
protected internal override object GetValue(DataSet dataSet, VirtualRow virtualRow) { return _value; }
private bool RowsMatch(VirtualRow a, VirtualRow b) { foreach (MappedColumn mappedColumn in _select._mappedColumns) { object aValue = mappedColumn.GetValue(_dataSet, a); object bValue = mappedColumn.GetValue(_dataSet, b); if (!aValue.Equals(bValue)) { return false; } } return true; }
private bool RowsArePartOfSameGroup(VirtualRow a, VirtualRow b) { foreach (Column column in _select._groupBy) { object aValue = column.GetValue(_dataSet, a); object bValue = column.GetValue(_dataSet, b); if (!aValue.Equals(bValue)) { return false; } } return true; }
private bool RowMatchesAnyRowInList(VirtualRow row, List<VirtualRow> rows) { foreach (VirtualRow distinctRow in rows) { if (RowsMatch(row, distinctRow)) { return true; } } return false; }
private List<VirtualRow> ApplyFrom() { List<VirtualRow> rows = new List<VirtualRow>(); foreach (DataRow row in GetDataTable(_dataSet, _select._fromTable).Rows) { VirtualRow data = new VirtualRow(); data.SetRowForTable(_select._fromTable, row); rows.Add(data); } return rows; }
public object GetValue(DataSet dataSet, VirtualRow virtualRow) { return _column.GetValue(dataSet, virtualRow); }
protected internal virtual object GetValue(DataSet dataSet, VirtualRow virtualRow) { return virtualRow.GetColumnValue(this); }
protected internal override object GetValue(DataSet dataSet, VirtualRow virtualRow) { DataTable dataTable = _select.ExecuteDataTable(dataSet, virtualRow); // TODO: Validate scalar result was returned! return dataTable.Rows[0][0]; }
public void SetOuterRow(VirtualRow outerRow) { _outerRow = outerRow; }
protected internal override object GetValue(DataSet dataSet, VirtualRow virtualRow) { List<VirtualRow> groupedRows = virtualRow.GetGroupedRows(); return groupedRows.Count; }