Ejemplo n.º 1
0
        public static void SubFeature(
            this IFeatureUsageTrackingSession featureUsageTracking,
            string featureName,
            Action action)
        {
            using (var subFeature = featureUsageTracking.SubFeature(featureName))
            {
                try
                {
                    action();
                }
                catch (Exception ex)
                {
                    subFeature.OnException(ex);

                    //re-throw so parent logic can deal with
                    throw;
                }
            }
        }
Ejemplo n.º 2
0
        public static TResult SubFeature <TResult>(
            this IFeatureUsageTrackingSession featureUsageTracking,
            string featureName,
            Func <TResult> func)
        {
            using (var subFeature = featureUsageTracking.SubFeature(featureName))
            {
                try
                {
                    return(func());
                }
                catch (Exception ex)
                {
                    subFeature.OnException(ex);

                    //re-throw so parent logic can deal with
                    throw;
                }
            }
        }
Ejemplo n.º 3
0
        public static async Task <TResult> SubFeatureAsync <TResult>(
            this IFeatureUsageTrackingSession featureUsageTracking,
            string featureName,
            Task <TResult> action)
        {
            using (var subFeature = featureUsageTracking.SubFeature(featureName))
            {
                try
                {
                    return(await action);
                }
                catch (Exception ex)
                {
                    subFeature.OnException(ex);

                    //re-throw so parent logic can deal with
                    throw;
                }
            }
        }