private void EnsureMailOperationIsOpen(Storage.Entities.Mail mail) { if (@mail.Status != MailStatus.Pending) { throw new InvalidOperationException("Mail operation has finished."); } }
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); }
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); }
public void CheckForAttachmentAdd(Storage.Entities.Mail mail) { EnsureMailOperationIsOpen(mail); }
public void CheckForPriorityChange(Storage.Entities.Mail mail) { EnsureMailOperationIsOpen(mail); }