Example #1
0
        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);
        }
Example #2
0
        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));
        }
Example #4
0
 public async Task <EmailDto> Post([FromBody] EmailCreateableDto data)
 {
     return(await _emailService.PostEmail(data));
 }