public SendNotificationResult SendNotification(Notification notification)
        {
            var retVal = new SendNotificationResult();

            try
            {
                MailMessage mailMsg = new MailMessage();

                //To email
                mailMsg.To.Add(new MailAddress(notification.Recipient));
                //From email
                mailMsg.From = new MailAddress(notification.Sender);
                mailMsg.ReplyToList.Add(mailMsg.From);

                mailMsg.Subject = notification.Subject;
                mailMsg.Body = notification.Body;
                mailMsg.IsBodyHtml = true;

                var login = _settingsManager.GetSettingByName(_smtpClientLoginSettingName).Value;
                var password = _settingsManager.GetSettingByName(_smtpClientPasswordSettingName).Value;
                var host = _settingsManager.GetSettingByName(_smtpClientHostSettingName).Value;
                var port = _settingsManager.GetSettingByName(_smtpClientPortSettingName).Value;
                var useSsl = _settingsManager.GetValue(_smtpClientUseSslSettingName, false);

                SmtpClient smtpClient = new SmtpClient(host, Convert.ToInt32(port));
                System.Net.NetworkCredential credentials = new System.Net.NetworkCredential(login, password);
                smtpClient.Credentials = credentials;
                smtpClient.EnableSsl = useSsl;

                smtpClient.Send(mailMsg);
                retVal.IsSuccess = true;
            }
            catch (Exception ex)
            {
                retVal.ErrorMessage = ex.Message + ex.InnerException;
            }

            return retVal;
        }
        public SendNotificationResult SendNotification(Notification notification)
        {
            var retVal = new SendNotificationResult();

            var mail = new SendGridMessage();
            mail.From = new MailAddress(notification.Sender);
            mail.ReplyTo = new[] { mail.From };
            mail.AddTo(notification.Recipient);
            mail.Subject = notification.Subject;
            mail.Html = notification.Body;

            var userName = _settingsManager.GetSettingByName(_sendGridUserNameSettingName).Value;
            var password = _settingsManager.GetSettingByName(_sendGridPasswordSettingName).Value;

            var credentials = new NetworkCredential(userName, password);
            var transportWeb = new Web(credentials);
            try
            {
                Task.Run(async () => await transportWeb.DeliverAsync(mail)).Wait();
                retVal.IsSuccess = true;
            }
            catch (Exception ex)
            {
                retVal.ErrorMessage = ex.Message;

                var invalidApiRequestException = ex.InnerException as InvalidApiRequestException;
                if (invalidApiRequestException != null)
                {
                    if (invalidApiRequestException.Errors != null && invalidApiRequestException.Errors.Length > 0)
                    {
                        retVal.ErrorMessage = string.Join(" ", invalidApiRequestException.Errors);
                    }
                }
            }

            return retVal;
        }