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; }
public bool TryRemoveOutgoMailQueue(DBMailQueueType type) { var r = _outgoMailQueues.TryRemove(type, out var _); return(r); }
public OutgoMailQueue <DBMailQueueType> GetOrAddOutgoMailQueue(DBMailQueueType type) { return(_outgoMailQueues.GetOrAdd(type, (n) => new OutgoMailQueue <DBMailQueueType>(n))); }
public bool WriteDBMail(MailPacket mail, DBMailQueueType type) { var outgoMailQueue = _dbMailQueueRepository.GetOrAddOutgoMailQueue(type); return(outgoMailQueue.TryWriteMail(mail)); }
private async Task OnCancelled(DBMailQueueType obj) { await Task.Delay(TimeSpan.FromSeconds(3)); Start(); }