Пример #1
0
        /// <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>();
        }