Exemplo n.º 1
0
        public async Task <bool> SendEmailToUserAsync(SendEmailToUserRequest request, CancellationToken cancellationToken)
        {
            string path        = $"api/SendEmailToUser";
            var    jsonContent = new StringContent(JsonConvert.SerializeObject(request), Encoding.UTF8, "application/json");

            using (HttpResponseMessage response = await _httpClientWrapper.PostAsync(HttpClientConfigName.CommunicationService, path, jsonContent, cancellationToken).ConfigureAwait(false))
            {
                string jsonResponse = await response.Content.ReadAsStringAsync();

                var emailSentResponse = JsonConvert.DeserializeObject <ResponseWrapper <SendEmailResponse, CommunicationServiceErrorCode> >(jsonResponse);
                if (emailSentResponse.HasContent && emailSentResponse.IsSuccessful)
                {
                    return(emailSentResponse.Content.Success);
                }
                return(false);
            }
        }
        public async Task <bool> SendEmailToUser(SendEmailToUserRequest sendEmailToUserRequest)
        {
            List <User> users = _connectUserService.PostUsersForListOfUserID(new List <int>()
            {
                sendEmailToUserRequest.ToUserID
            }).Result;

            if (users != null)
            {
                return(await SendEmail(
                           users[0].UserPersonalDetails.EmailAddress,
                           users[0].UserPersonalDetails.FirstName,
                           sendEmailToUserRequest.Subject,
                           sendEmailToUserRequest.BodyText,
                           sendEmailToUserRequest.BodyHTML
                           ));
            }
            else
            {
                return(false);
            }
        }
        public async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)]
            [RequestBodyType(typeof(SendEmailToUserRequest), "Send Email To User")] SendEmailToUserRequest req,
            ILogger log)
        {
            try
            {
                NewRelic.Api.Agent.NewRelic.SetTransactionName("CommunicationService", "SendEmailToUser");
                log.LogInformation("C# HTTP trigger function processed a request.");

                SendEmailResponse response = await _mediator.Send(req);

                return(new OkObjectResult(ResponseWrapper <SendEmailResponse, CommunicationServiceErrorCode> .CreateSuccessfulResponse(response)));
            }
            catch (Exception exc)
            {
                LogError.Log(log, exc, req);
                return(new ObjectResult(ResponseWrapper <SendEmailResponse, CommunicationServiceErrorCode> .CreateUnsuccessfulResponse(CommunicationServiceErrorCode.InternalServerError, "Internal Error"))
                {
                    StatusCode = StatusCodes.Status500InternalServerError
                });
            }
        }