/// <summary> /// Create. /// </summary> /// <param name="environment">Environment to use in order to invoke loggers.</param> public Loggable(ILogicSessionEnvironment environment) { if (environment == null) { throw new ArgumentNullException(nameof(environment)); } this.environment = environment; }
/// <summary> /// Create. /// </summary> /// <param name="environment">Environment to use in order to invoke loggers.</param> /// <param name="asyncMessageConsumer">Asynchronous function for consuming a message.</param> /// <param name="classLoggerName">The name of the logger to use for recording failure of the message consumer.</param> public AsyncWorkQueue(ILogicSessionEnvironment environment, Func <M, Task> asyncMessageConsumer, string classLoggerName) : base(environment) { if (asyncMessageConsumer == null) { throw new ArgumentNullException(nameof(asyncMessageConsumer)); } if (classLoggerName == null) { throw new ArgumentNullException(nameof(classLoggerName)); } this.asyncMessageConsumer = asyncMessageConsumer; this.classLoggerName = classLoggerName; messagesQueue = new ConcurrentQueue <M>(); }