public async Task SendEmail(EmailSendingRequest emailSendingRequest)
        {
            var client = new SendGridClient(this.sendGridSettings.ApiKey);

            var from = new EmailAddress(emailSendingRequest.Sender.Email, emailSendingRequest.Sender.FromLabel);

            var subject = emailSendingRequest.EmailMessage.Subject;
            var to      = new EmailAddress(emailSendingRequest.Recipient.Email, emailSendingRequest.Recipient.Email);

            var plainTextContent = "";
            var htmlContent      = emailSendingRequest.EmailMessage.Body;

            var msg = MailHelper.CreateSingleEmail(from, to, subject, plainTextContent, htmlContent);

            var response = await client.SendEmailAsync(msg);
        }
        public async Task SendEmail(EmailSendingRequest emailSendingRequest)
        {
            var sendgridData = new SendgridData()
            {
                Personalizations = new List <Personalization>()
                {
                    new Personalization
                    {
                        To = new List <To>()
                        {
                            new To {
                                Email = emailSendingRequest.Recipient.Email,
                                Name  = emailSendingRequest.Recipient.Name
                            }
                        },
                        Subject       = emailSendingRequest.EmailMessage.Subject,
                        Substitutions = emailSendingRequest.MergeFields
                    }
                },
                Content = new List <Content>()
                {
                    new Content {
                        Type = "text/html", Value = emailSendingRequest.EmailMessage.Body
                    }
                },
                From = new From
                {
                    Email = emailSendingRequest.Sender.Email,
                    Name  = emailSendingRequest.Sender.FromLabel
                },
                ReplyTo = new ReplyTo
                {
                    Email = emailSendingRequest.Sender.Email,
                    Name  = emailSendingRequest.Sender.FromLabel
                },
                TemplateId       = emailSendingRequest.TemplateId,
                TrackingSettings = new TrackingSettings()
                {
                    ClickTracking = new ClickTracking()
                    {
                        Enable = !emailSendingRequest.DisableClickTracking
                    },
                    OpenTracking = new OpenTracking()
                    {
                        Enable = !emailSendingRequest.DisableOpenTracking
                    }
                }
            };

            if (!string.IsNullOrEmpty(emailSendingRequest.TemplateId))
            {
                sendgridData.Content = null;
                sendgridData.Personalizations[0].Subject = string.Empty;

                await SendEmail(sendgridData);
            }
            else
            {
                await SendEmail(sendgridData);
            }
        }