private IComparableDataItem GetFieldsValues(IEnumerable <FieldInfoPair> fieldPairs, IDataItem item) { var groupingPair = new GroupingPair(); foreach (var fieldPair in fieldPairs) { var value = item.GetValueOrDefault(fieldPair.OutputName, item); groupingPair[fieldPair.OutputName] = value; } return(groupingPair); }
private IDataItem GetComputedValues(IEnumerable <FieldInfoPair> fieldPairs, IGrouping <IComparableDataItem, IDataItem> grouping) { var groupingPair = new GroupingPair(); foreach (var fieldPair in fieldPairs) { if (String.IsNullOrWhiteSpace(fieldPair.FuncName) && String.IsNullOrWhiteSpace(fieldPair.Expression)) { groupingPair[fieldPair.OutputName] = grouping.Key[fieldPair.OutputName]; } else { groupingPair[fieldPair.OutputName] = GetExecFunc(fieldPair.FuncName, fieldPair.Expression, grouping); } } return(groupingPair); }