Exemplo n.º 1
0
        public DBMailCallProxy(Mailer.MailerClient client,
                               DBMailQueueRepository dbMailQueueRepository,
                               DBMailQueueType type,
                               ILogger logger)
        {
            _client = client;
            _dbMailQueueRepository = dbMailQueueRepository;
            _type        = type;
            _logger      = logger;
            _mailChannel = Channel.CreateUnbounded <MailPacket>();
            var outgoMailQueue = _dbMailQueueRepository.GetOrAddOutgoMailQueue(_type);

            outgoMailQueue.OnRead += OnRead;
            EventCancelled        += OnCancelled;
        }
Exemplo n.º 2
0
        public bool TryRemoveOutgoMailQueue(DBMailQueueType type)
        {
            var r = _outgoMailQueues.TryRemove(type, out var _);

            return(r);
        }
Exemplo n.º 3
0
 public OutgoMailQueue <DBMailQueueType> GetOrAddOutgoMailQueue(DBMailQueueType type)
 {
     return(_outgoMailQueues.GetOrAdd(type, (n) => new OutgoMailQueue <DBMailQueueType>(n)));
 }
Exemplo n.º 4
0
        public bool WriteDBMail(MailPacket mail, DBMailQueueType type)
        {
            var outgoMailQueue = _dbMailQueueRepository.GetOrAddOutgoMailQueue(type);

            return(outgoMailQueue.TryWriteMail(mail));
        }
Exemplo n.º 5
0
        private async Task OnCancelled(DBMailQueueType obj)
        {
            await Task.Delay(TimeSpan.FromSeconds(3));

            Start();
        }