Exemple #1
0
        public static async Task <T> PerformFunctionAsync <T>(
            this IExtensionManager extensionManager,
            object extension,
            Func <Task <T> > function,
            T defaultValue)
        {
            try
            {
                if (!extensionManager.IsDisabled(extension))
                {
                    var task = function() ?? SpecializedTasks.Default <T>();
                    return(await task.ConfigureAwait(false));
                }
            }
            catch (OperationCanceledException)
            {
                throw;
            }
            catch (Exception e) when(extensionManager.CanHandleException(extension, e))
            {
                extensionManager.HandleException(extension, e);
            }

            return(defaultValue);
        }
        public static async Task <T> PerformFunctionAsync <T>(
            this IExtensionManager extensionManager,
            object extension,
            Func <Task <T>?> function,
            T defaultValue)
        {
            if (extensionManager.IsDisabled(extension))
            {
                return(defaultValue);
            }

            try
            {
                var task = function();
                if (task != null)
                {
                    return(await task.ConfigureAwait(false));
                }
            }
            catch (Exception e) when(!(e is OperationCanceledException) && extensionManager.CanHandleException(extension, e))
            {
                extensionManager.HandleException(extension, e);
            }

            return(defaultValue);
        }
Exemple #3
0
        public static T PerformFunction <T>(
            this IExtensionManager extensionManager,
            object extension,
            Func <T> function,
            T defaultValue
            )
        {
            try
            {
                if (!extensionManager.IsDisabled(extension))
                {
                    return(function());
                }
            }
            catch (OperationCanceledException)
            {
                throw;
            }
            catch (Exception e) when(extensionManager.CanHandleException(extension, e))
            {
                extensionManager.HandleException(extension, e);
            }

            return(defaultValue);
        }
Exemple #4
0
 public static void PerformAction(this IExtensionManager extensionManager, object extension, Action action)
 {
     try
     {
         if (!extensionManager.IsDisabled(extension))
         {
             action();
         }
     }
     catch (OperationCanceledException)
     {
         throw;
     }
     catch (Exception e) when(extensionManager.CanHandleException(extension, e))
     {
         extensionManager.HandleException(extension, e);
     }
 }
Exemple #5
0
 public static async Task PerformActionAsync(
     this IExtensionManager extensionManager,
     object extension,
     Func <Task> function)
 {
     try
     {
         if (!extensionManager.IsDisabled(extension))
         {
             var task = function() ?? SpecializedTasks.EmptyTask;
             await task.ConfigureAwait(false);
         }
     }
     catch (OperationCanceledException)
     {
         throw;
     }
     catch (Exception e) when(extensionManager.CanHandleException(extension, e))
     {
         extensionManager.HandleException(extension, e);
     }
 }