using System; using System.Collections.Generic; using System.Linq; using System.Web; using MongoDB.Driver; using MongoDB.Bson; using AIAHTML5.API.Properties; using AIAHTML5.API.Constants; using log4net; using System.Net.Mail; using AIAHTML5.API.Utility; using System.Text; using System.IO; using System.Net.Mime; using System.Configuration; namespace AIAHTML5.API.Models { public class UserUtility { public static bool SendEmail(dynamic UserDetails, bool havePassword) { ILog logger = log4net.LogManager.GetLogger((System.Reflection.MethodBase.GetCurrentMethod().DeclaringType)); logger.Debug("inside SendEmail in for havePassword =" + havePassword); try { List lstLinkedResource = new List(); EmailUtility emailUtility = new EmailUtility(); List lstToAddress = new List(); List lstBccAddress = new List(); string emailText = string.Empty; string userId = string.Empty; string userMail = string.Empty; string userName = string.Empty; string fName = string.Empty; string lName = string.Empty; string site_url = Convert.ToString(ConfigurationManager.AppSettings["Site_URL"]); //foreach (KeyValuePair userObj in UserDetails) //{ // if (userObj.Key == "LoginId") // userId = userObj.Value.ToString(); // if (userObj.Key == "EmailId") // userMail = userObj.Value.ToString(); // if (userObj.Key == "FirstName") // fName = userObj.Value.ToString(); // if (userObj.Key == "LastName") // lName = userObj.Value.ToString(); //} if (UserDetails.LoginId != "") userId = UserDetails.LoginId.ToString(); if (UserDetails.EmailId != "") userMail = UserDetails.EmailId.ToString(); if (UserDetails.FirstName != "") fName = UserDetails.FirstName.ToString(); if (UserDetails.LastName != "") lName = UserDetails.LastName.ToString(); string fullName = fName + " " + lName; string logoPath = HttpContext.Current.Server.MapPath("~/content/images/logo.png"); string templatePath = string.Empty; string resetPasswordLink = string.Empty; if (havePassword) { templatePath = "~/Templates/forgot-Password.html"; resetPasswordLink = site_url + "?em:" + HttpUtility.UrlEncode(userMail); } else templatePath = "~/Templates/forgot-UserId.html"; logger.Debug("inside SendEmail for templatePath= " + templatePath + ", userId= " + userId + ", userMail= " + userMail + ",fullName= " + fullName + ",resetPasswordLink= " + resetPasswordLink); string mailBody = UserUtility.GetMailBodyTextFromTemplate(templatePath, userId, userMail, fullName, resetPasswordLink); lstToAddress.Add(userMail); emailText = mailBody; logger.Debug("emailText= " + emailText); // for embedding images in email if (emailText.Contains(" lstToAddress = new List(); List lstBccAddress = new List(); string userMail = string.Empty; string fullName = string.Empty; string emailMessage = string.Empty; string[] mailToArr = (ConfigurationManager.AppSettings["AdminSupport"]).Split(','); if (mailToArr.Length > 0) { for (int i = 0; i < mailToArr.Length; i++) { lstToAddress.Add(mailToArr[i].ToString()); } } fullName = userInfo["firstName"].ToString() + " " + userInfo["lastName"].ToString(); userMail = userInfo["emailId"].ToString(); emailMessage = userInfo["userMessage"].ToString(); lstToAddress.Add(userMail); emailMessage = emailMessage.Replace("\n", "
"); emailMessage += "

"; string mailSubject = "Admin Support request initiated for:"; emailUtility.sHostName = Convert.ToString(ConfigurationManager.AppSettings["HostAddress"]); emailUtility.sFromAddress = Convert.ToString(ConfigurationManager.AppSettings["SenderEmailAddress"]); emailUtility.bIsBodyHtml = true; emailUtility.bEnableSsl = false; emailUtility.sSubject = mailSubject + " " + userMail; emailUtility.sBodyText = emailMessage; emailUtility.iPort = 25; emailUtility.sToAddresses = lstToAddress; emailUtility.sBccAddresses = lstBccAddress; emailUtility.SendSmtpEmail(); return true; } catch (Exception ex) { logger.Fatal("exception in GetMailBodyTextFromTemplate. msg= " + ex.Message + ", stacktrace= " + ex.StackTrace); return false; } } } }