/// <summary> /// Executes the <see cref="ExecutionManager.PerRunType"/> action. /// </summary> /// <param name="args">The <see cref="IExecutorArgs"/>.</param> internal void OnPerRunType(IExecutorArgs args) { try { PerRunType?.Invoke(args); } catch (Exception ex) { Trace(() => Logger.Default.Trace($"ExecutionManager '{InstanceId}' AfterRun action threw an Exception (this exception was swallowed by design and otherwise not logged): {ex.ToString()}")); } }
/// <summary> /// For use with the <see cref="ExecutionManager.PerRunType"/> action to write standardised log messages. /// </summary> /// <param name="args">The <see cref="IExecutorArgs"/>.</param> public void LogExecutionRun(IExecutorArgs args) { switch (args.RunType) { case ExecutorRunType.CollectionRun: if (args.Exception != null) { Logger.Default.Exception2(args, args.Exception, string.Format(UnexpectedCollectionRunExceptionMessage ?? "{0}", args.Exception.Message)); } break; case ExecutorRunType.CollectionIterate: if (args.Exception != null) { Logger.Default.Exception2(args, args.Exception, string.Format(UnexpectedCollectionIterateExceptionMessage ?? "{0}", args.Exception.Message)); } break; case ExecutorRunType.ItemRun: if (args.Exception != null) { if (args is ExecutorItemRunArgs <FileOperationResult> irargs) { Logger.Default.Exception2(new FileReaderLoggerData(irargs.Item), args.Exception, string.Format(UnexpectedItemRunExceptionMessage ?? "{0}", args.Exception.Message)); } else { Logger.Default.Exception2(args, args.Exception, string.Format(UnexpectedItemRunExceptionMessage ?? "{0}", args.Exception.Message)); } } break; case ExecutorRunType.CompletionRun: if (args.Exception != null) { Logger.Default.Exception2(args, args.Exception, string.Format(UnexpectedCompletionRunExceptionMessage ?? "{0}", args.Exception.Message)); } break; case ExecutorRunType.Run: if (args.Exception != null) { Logger.Default.Exception2(args, args.Exception, string.Format(UnexpectedRunExceptionMessage ?? "{0}", args.Exception.Message)); } break; } }
/// <summary> /// For use with the <see cref="ExecutionManager.PerRunType"/> action to write standardised log messages. /// </summary> /// <param name="args">The <see cref="IExecutorArgs"/>.</param> public void LogExecutionRun(IExecutorArgs args) { switch (Check.NotNull(args, nameof(args)).RunType) { case ExecutorRunType.CollectionRun: if (args.Exception != null) { Logger.Default.Exception2(args, args.Exception, string.Format(System.Globalization.CultureInfo.InvariantCulture, UnexpectedCollectionRunExceptionMessage ?? "{0}", args.Exception.Message)); } break; case ExecutorRunType.CollectionIterate: if (args.Exception != null) { Logger.Default.Exception2(args, args.Exception, string.Format(System.Globalization.CultureInfo.InvariantCulture, UnexpectedCollectionIterateExceptionMessage ?? "{0}", args.Exception.Message)); } break; case ExecutorRunType.ItemRun: if (args.Exception != null) { if (args is ExecutorItemRunArgs <FileOperationResult> irargs) { Logger.Default.Exception2(new FileReaderLoggerData(irargs.Item), args.Exception, string.Format(System.Globalization.CultureInfo.InvariantCulture, UnexpectedItemRunExceptionMessage ?? "{0}", args.Exception.Message)); } else { Logger.Default.Exception2(args, args.Exception, string.Format(System.Globalization.CultureInfo.InvariantCulture, UnexpectedItemRunExceptionMessage ?? "{0}", args.Exception.Message)); } } break; case ExecutorRunType.CompletionRun: if (args.Exception != null) { Logger.Default.Exception2(args, args.Exception, string.Format(System.Globalization.CultureInfo.InvariantCulture, UnexpectedCompletionRunExceptionMessage ?? "{0}", args.Exception.Message)); } break; case ExecutorRunType.Run: if (args.Exception != null) { Logger.Default.Exception2(args, args.Exception, string.Format(System.Globalization.CultureInfo.InvariantCulture, UnexpectedRunExceptionMessage ?? "{0}", args.Exception.Message)); } break; } }
/// <summary> /// Executes the <see cref="ExecutionManager"/> <see cref="ExecutionManager.PerRunType"/> function. /// </summary> /// <param name="args">The <see cref="IExecutorArgs"/>.</param> internal void OnPerRunType(IExecutorArgs args) { _executionManager.OnPerRunType(args); }