private static decimal GetSumOf(RenderContext context, BaseColumn c, Func <RenderContext, BaseColumn, bool> where) { if (!c.IsCrossColumn) { if (where == null || where (context, c)) { return(Convert.ToDecimal(c.GetValueByContext(context))); } return(0); } var contexts = c.BaseCrossColumnDataSource.GetCrossColumnNames().Select(columnName => context.OtherColumns[columnName]); var crossColumnNames = where == null ? contexts.ToList() : contexts.Where(renderContext => where (renderContext, renderContext.Column)).ToList(); if (crossColumnNames.Count == 0) { return(0); } return(crossColumnNames.Sum(renderContext => Convert.ToDecimal(renderContext.Column.GetValue(renderContext)))); }
private object GetValue(RenderContext context) { cloneColumn.DependenceColumns(context, baseColumn); return(baseColumn.GetValueByContext(context)); }