/// <summary>Gets column provider for the metric values.</summary> /// <param name="metric">The metric to get columns for.</param> /// <param name="columns">The columns to include.</param> /// <returns>Column provider for the metric values</returns> public IColumnProvider GetColumnProvider(MetricInfo metric, MetricValueColumns columns) { Code.NotNull(metric, nameof(metric)); EnumCode.FlagsDefined(columns, nameof(columns)); Code.AssertArgument( metric.ValuesProvider == this, nameof(metric), "Passed ValuesProvider does not match to this one."); return(GetColumnProviderOverride(metric, columns)); }
/// <summary>Creates the column provider for the metric columns.</summary> /// <param name="metric">The metric to get columns for.</param> /// <param name="columns">The columns to include.</param> /// <returns>Column provider for the metric columns</returns> protected static IColumnProvider CreateColumnProvider([NotNull] MetricInfo metric, MetricValueColumns columns) { var resultColumns = _columnKinds .Where(p => columns.IsFlagSet(p.Key)) .Select(p => (IColumn) new MetricValueColumn(metric, p.Value)) .ToArray(); return(new SimpleColumnProvider(resultColumns)); }
/// <summary>Gets column provider for the metric values.</summary> /// <param name="metric">The metric to get columns for.</param> /// <param name="columns">The columns to include.</param> /// <returns>Column provider for the metric values</returns> protected virtual IColumnProvider GetColumnProviderOverride(MetricInfo metric, MetricValueColumns columns) { if (columns == MetricValueColumns.Auto) { columns = metric.MetricColumns; } if (columns == MetricValueColumns.Auto) { columns = MetricValueColumns.Mean; } return(CreateColumnProvider(metric, columns)); }
public IColumnProvider GetColumnProvider(MetricValueColumns columns) => ValuesProvider.GetColumnProvider(this, columns);