public async Task <MailServiceError> SendMailAsync(MailInfo mail, CallBackInfo callback, CancellationToken cancellationToken) { if (mail == null) { throw new ArgumentNullException(nameof(mail)); } MailServiceError checkMail = mail.Check(); if (checkMail == MailServiceError.Ok) { MailData mailData = new MailData(mail, callback); using (var trx = this.StateManager.CreateTransaction()) { await this.mailQueue.EnqueueAsync(trx, mailData); await trx.CommitAsync(); } } return(checkMail); }