コード例 #1
0
        public async Task <IActionResult> SendEmail([FromBody] SendEmailRequestDTO sendEmailRequest,
                                                    CancellationToken cancellationToken)
        {
            // Reject password tokens
            if (ClaimsHelper.IsPasswordToken(this.User))
            {
                return(this.Forbid());
            }

            Guid messageId = sendEmailRequest.MessageId.HasValue ? sendEmailRequest.MessageId.Value : Guid.NewGuid();

            // Create the command
            SendEmailRequest request = SendEmailRequest.Create(sendEmailRequest.ConnectionIdentifier,
                                                               messageId,
                                                               sendEmailRequest.FromAddress,
                                                               sendEmailRequest.ToAddresses,
                                                               sendEmailRequest.Subject,
                                                               sendEmailRequest.Body,
                                                               sendEmailRequest.IsHtml);

            // Route the command
            await this.Mediator.Send(request, cancellationToken);

            // return the result
            return(this.Created($"{EmailController.ControllerRoute}/{messageId}",
                                new SendEmailResponseDTO
            {
                MessageId = messageId
            }));
        }
コード例 #2
0
        public void SendEmailRequest_CanBeCreated_IsCreated()
        {
            SendEmailRequest request = SendEmailRequest.Create(TestData.ConnectionIdentifier,
                                                               TestData.MessageId,
                                                               TestData.FromAddress,
                                                               TestData.ToAddresses,
                                                               TestData.Subject,
                                                               TestData.Body,
                                                               TestData.IsHtmlTrue);

            request.ShouldNotBeNull();
            request.ConnectionIdentifier.ShouldBe(TestData.ConnectionIdentifier);
            request.MessageId.ShouldBe(TestData.MessageId);
            request.FromAddress.ShouldBe(TestData.FromAddress);
            request.ToAddresses.ShouldBe(TestData.ToAddresses);
            request.Subject.ShouldBe(TestData.Subject);
            request.Body.ShouldBe(TestData.Body);
            request.IsHtml.ShouldBe(TestData.IsHtmlTrue);
        }