/// <summary> /// Execute the delegate <paramref name="collectionAction" /> only when /// <see cref="IActionDimensionCollector.Enabled" /> /// is true /// </summary> public static void WhenEnabled(this IActionDimensionCollector source, Action <IActionDimensionCollector> collectionAction) { if (!source.Enabled) { return; } collectionAction(source); }
/// <summary> /// Try and execute the delegate <paramref name="collectionAction" /> only when /// <see cref="IActionDimensionCollector.Enabled" /> /// is true, returning false when the collection fails with an exception /// </summary> public static bool TryWhenEnabled(this IActionDimensionCollector source, Action <IActionDimensionCollector> collectionAction) { if (!source.Enabled) { return(true); } try { collectionAction(source); return(true); } catch (Exception e) { // not sure where to log these failures; ideally we should write to some diagnostic trace source Console.WriteLine($"Failed to collect dimensions; error: {e}"); return(false); } }
/// <summary> /// Collect dimensions using the <see cref="IActionDimensionCollector.ActionResultDimensionPrefix" /> /// to prefix each dimension key /// </summary> public static void CollectActionResultDimensions( this IActionDimensionCollector source, IDictionary <string, object> dimensions) { source.CollectDimensions(dimensions, source.ActionResultDimensionPrefix); }
/// <summary> /// Collect dimension using the <see cref="IActionDimensionCollector.ActionResultDimensionPrefix" /> /// to prefix the dimension key /// </summary> public static void CollectActionResultDimension( this IActionDimensionCollector source, string key, object value) { source.CollectDimension(key, value, source.ActionResultDimensionPrefix); }
public RazorActionResultDimensionsFilter(IEnumerable <IRazorControllerDimensionSelector> dimensionSelectors, IActionDimensionCollector dimensionCollector) : base(dimensionSelectors, dimensionCollector) { }
public ActionResultDimensionsFilter(IEnumerable <IControllerDimensionSelectorBase> dimensionSelectors, IActionDimensionCollector dimensionCollector) { DimensionSelectors = dimensionSelectors.ToList(); DimensionCollector = dimensionCollector; }
public ApiActionDimensionsFilter(IEnumerable <IApiControllerDimensionSelector> dimensionSelectors, IActionDimensionCollector dimensionCollector) : base(dimensionSelectors, dimensionCollector) { }