public async Task <Unit> Handle(CreateAttachment request, CancellationToken cancellationToken) { var mail = await _dbContext.Mails.SingleOrDefaultAsync(m => m.Id == request.MailId, cancellationToken : cancellationToken); if (mail == null) { throw new EntityNotFoundException(request.MailId); } _domainValidator.CheckForAttachmentAdd(mail); var attachment = new Attachment { FileName = request.FileName, Data = new AttachmentData { Data = request.File } }; mail.Attachments.Add(attachment); await _dbContext.SaveChangesAsync(); return(Unit.Value); }
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); }