/// <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);
 }
예제 #5
0
 public RazorActionResultDimensionsFilter(IEnumerable <IRazorControllerDimensionSelector> dimensionSelectors,
                                          IActionDimensionCollector dimensionCollector) : base(dimensionSelectors, dimensionCollector)
 {
 }
예제 #6
0
 public ActionResultDimensionsFilter(IEnumerable <IControllerDimensionSelectorBase> dimensionSelectors,
                                     IActionDimensionCollector dimensionCollector)
 {
     DimensionSelectors = dimensionSelectors.ToList();
     DimensionCollector = dimensionCollector;
 }
 public ApiActionDimensionsFilter(IEnumerable <IApiControllerDimensionSelector> dimensionSelectors,
                                  IActionDimensionCollector dimensionCollector) : base(dimensionSelectors, dimensionCollector)
 {
 }