Ejemplo n.º 1
0
 private void EnsureMailOperationIsOpen(Storage.Entities.Mail mail)
 {
     if (@mail.Status != MailStatus.Pending)
     {
         throw new InvalidOperationException("Mail operation has finished.");
     }
 }
Ejemplo n.º 2
0
        protected Storage.Entities.Mail SetupMail(MailStatus status = MailStatus.Pending)
        {
            // TODO move to factory
            var mailRecord = new Storage.Entities.Mail
            {
                Sender     = Faker.Internet.Email(),
                Recipients = new[] { Faker.Internet.Email(), Faker.Internet.Email() },
                Subject    = Faker.Company.Name(),
                Body       = Faker.Lorem.Paragraph(),
                Priority   = MailPriority.Normal,
                Status     = status
            };

            DbContext.Mails.Add(mailRecord);
            DbContext.SaveChanges();
            return(mailRecord);
        }
Ejemplo n.º 3
0
        public async Task <int> Handle(CreateMailCommand request, CancellationToken cancellationToken)
        {
            var mail = new Storage.Entities.Mail
            {
                Sender     = request.Sender ?? "*****@*****.**", // TODO get from config
                Recipients = request.Recipients,
                Subject    = request.Subject,
                Body       = request.Body,
                Status     = MailStatus.Pending,
                Priority   = Enum.Parse <MailPriority>(request.Priority)
            };

            _dbContext.Mails.Add(mail);
            await _dbContext.SaveChangesAsync(cancellationToken);

            return(mail.Id);
        }
Ejemplo n.º 4
0
 public void CheckForAttachmentAdd(Storage.Entities.Mail mail)
 {
     EnsureMailOperationIsOpen(mail);
 }
Ejemplo n.º 5
0
 public void CheckForPriorityChange(Storage.Entities.Mail mail)
 {
     EnsureMailOperationIsOpen(mail);
 }