public async Task VerifyPostEmailThrowsValidationExceptions(EmailCreateableDto data, string expectedExceptionMessage) { IEmailService testCandidate = CreateDefaultEmailService(); var exception = await Assert.ThrowsAsync <ValidationException>(() => testCandidate.PostEmail(data)); Assert.Equal(expectedExceptionMessage, exception.Message); }
public async Task VerifyPostEmail(EmailCreateableDto data, int expectedId, string expectedCreatedBy) { IEmailService testCandidate = CreateDefaultEmailService(); EmailDto result = await testCandidate.PostEmail(data); Assert.NotNull(result); Assert.Equal(expectedId, result.Id); Assert.Equal(expectedCreatedBy, result.CreatedBy); Assert.Equal(1, DbContext.Recipients.Count(r => r.EmailId == result.Id)); }
public async Task <EmailDto> PostEmail(EmailCreateableDto data) { _ = data ?? throw new ValidationException("Email data is empty"); ValidateEmailRecipients(data.Recipients); var emailToCreate = _mapper.Map <EmailModel>(data); emailToCreate.Recipients = CreateEmailRecipients(emailToCreate, data.Recipients); var createdEmail = await _dbContext.Emails.AddAsync(emailToCreate); await _dbContext.SaveChangesAsync(); return(_mapper.Map <EmailDto>(createdEmail.Entity)); }
public async Task <EmailDto> Post([FromBody] EmailCreateableDto data) { return(await _emailService.PostEmail(data)); }