public OutgoingEmailLogModel GetNotificationDetails(Hashtable emailNotificationsCriteria) { DBUtility _db = new DBUtility(); var _dt = new DataTable(); _cmd = new SqlCommand(); var result = new OutgoingEmailLogModel(); _cmd.CommandType = CommandType.StoredProcedure; _cmd.CommandText = "GP_SP_GetNotificationDetails"; _cmd.Parameters.AddWithValue("@commentID", Convert.ToInt64(emailNotificationsCriteria["ID"])); _dt = _db.FillDataTable(_cmd, _dt); if (_dt.Rows.Count > 0) { foreach (DataRow dr in _dt.Rows) { OutgoingEmailLogModel outgoingEmailLogModel = new OutgoingEmailLogModel(); outgoingEmailLogModel.MessageBody = Convert.ToString(dr["MessageBody"]); outgoingEmailLogModel.CreatedDate = Convert.ToString(dr["CreatedDate"]); outgoingEmailLogModel.EmailFrom = Convert.ToString(dr["EmailFrom"]); outgoingEmailLogModel.EmailSubject = Convert.ToString(dr["EmailSubject"]); outgoingEmailLogModel.EmailTo = Convert.ToString(dr["EmailTo"]); outgoingEmailLogModel.ListingID = Convert.ToString(dr["ListingID"]); outgoingEmailLogModel.DealName = Convert.ToString(dr["DealName"]); outgoingEmailLogModel.MessageSender = Convert.ToString(dr["MessageSender"]); outgoingEmailLogModel.ReceiverName = Convert.ToString(dr["ReceiverName"]); outgoingEmailLogModel.PhoneNumber = Convert.ToString(dr["PhoneNumber"]); result = outgoingEmailLogModel; } } return(result); }
public ActionResult ReplyToMessage(string listingDetailsID, string toUserId, string message, string CommentID = null) { var brokerListings = new BrokerListings(); var serialization = new Serialization(); var sharedFunctions = new SharedFunctions(); var emailNotifications = new EmailNotifications(); var outgoingEmailLogModel = new OutgoingEmailLogModel(); var HashCriteria = new Hashtable(); var actualCriteria = string.Empty; var CommentSubject = " You got reply "; HashCriteria.Add("ID", listingDetailsID); HashCriteria.Add("ToUserID", toUserId); HashCriteria.Add("Message", message); HashCriteria.Add("UserID", userID); HashCriteria.Add("ReplyToComment", CommentID); HashCriteria.Add("CommentSubject", CommentSubject); HashCriteria.Add("IsContactToBroker", true); actualCriteria = serialization.SerializeBinary((object)HashCriteria); var result = Convert.ToString(brokerListings.ReplyToMessage(actualCriteria)); var commentID = Convert.ToInt64(serialization.DeSerializeBinary(Convert.ToString(result))); HashCriteria = new Hashtable(); actualCriteria = string.Empty; HashCriteria.Add("ID", commentID); actualCriteria = Convert.ToString(serialization.SerializeBinary((object)HashCriteria)); var resultEmail = Convert.ToString(emailNotifications.GetNotificationDetails(actualCriteria)); outgoingEmailLogModel = (OutgoingEmailLogModel)(serialization.DeSerializeBinary(Convert.ToString(resultEmail))); outgoingEmailLogModel.ExternalEmail = System.Configuration.ConfigurationManager.AppSettings["ExternalEmail"]; var response = sharedFunctions.SendEmail(outgoingEmailLogModel.EmailTo, Convert.ToString(EmailTemplates.MessageCenter), "Synoptek : " + outgoingEmailLogModel.MessageSender + " sent you message on - " + outgoingEmailLogModel.DealName, null, outgoingEmailLogModel); return(Json(response, JsonRequestBehavior.AllowGet)); }
public bool SendEmail(string emailTo, string emailTemplate, string emailSubject, object model = null, OutgoingEmailLogModel outgoingEmailLogModel = null) { var emailNotificationBA = new EmailNotifications(); var emailNotificationsModel = GetEmailNotificationsModel(); if (outgoingEmailLogModel == null) { outgoingEmailLogModel = new OutgoingEmailLogModel(); } outgoingEmailLogModel.EmailSubject = emailSubject; outgoingEmailLogModel.DomainName = Convert.ToString(ConfigurationManager.AppSettings["DomainName"]); SendEmailNotification(emailTo, emailTemplate, model, emailNotificationsModel, outgoingEmailLogModel); return(true); }
public bool SendContactRequestEmail(long commentID, bool IsContactBroker) { var serialization = new Serialization(); var sharedFunctions = new SharedFunctions(); var emailNotifications = new EmailNotifications(); var outgoingEmailLogModel = new OutgoingEmailLogModel(); var HashCriteriaNotification = new Hashtable(); string actualCriteriaNotification; HashCriteriaNotification.Add("ID", commentID); actualCriteriaNotification = serialization.SerializeBinary((object)HashCriteriaNotification); var resultEmail = emailNotifications.GetNotificationDetails(actualCriteriaNotification); outgoingEmailLogModel = (OutgoingEmailLogModel)(serialization.DeSerializeBinary(Convert.ToString(resultEmail))); outgoingEmailLogModel.ExternalEmail = System.Configuration.ConfigurationManager.AppSettings["ExternalEmail"]; //For schedule consulations end email to law var scheduleConsulationEmail = System.Configuration.ConfigurationManager.AppSettings["ScheduleConsulationEmail"]; if (IsContactBroker) { if (outgoingEmailLogModel.DealName == null || outgoingEmailLogModel.DealName == "") { sharedFunctions.SendEmail(outgoingEmailLogModel.EmailTo, Convert.ToString(EmailTemplates.ContactBrokerUnlikeListing), "Synoptek : " + outgoingEmailLogModel.MessageSender + " wants to contact you.", null, outgoingEmailLogModel); } else { sharedFunctions.SendEmail(outgoingEmailLogModel.EmailTo, Convert.ToString(EmailTemplates.ContactBroker), "Synoptek : " + outgoingEmailLogModel.MessageSender + " wants to contact you for - " + outgoingEmailLogModel.DealName, null, outgoingEmailLogModel); } } else { //Added by Jyotibala P. for public user set Emailto is external address specified in web.config if (string.IsNullOrWhiteSpace(outgoingEmailLogModel.EmailTo)) { if (scheduleConsulationEmail != null && scheduleConsulationEmail != "") { outgoingEmailLogModel.EmailTo = scheduleConsulationEmail; } outgoingEmailLogModel.DealName = "Portal"; outgoingEmailLogModel.ReceiverName = "Admin"; sharedFunctions.SendEmail(outgoingEmailLogModel.EmailTo, Convert.ToString(EmailTemplates.ScheduleConsultation), "Synoptek : User needs consultation", null, outgoingEmailLogModel); } else { sharedFunctions.SendEmail(outgoingEmailLogModel.EmailTo, Convert.ToString(EmailTemplates.ScheduleConsultation), "Synoptek : " + outgoingEmailLogModel.MessageSender + " needs consultation for - " + outgoingEmailLogModel.DealName, null, outgoingEmailLogModel); } } return(true); }
public void SendEmailNotification(string mailTo, string template, Object model = null, EmailNotificationsModel emailNotificationsModel = null, OutgoingEmailLogModel outgoingEmailLogModel = null) { //System.Web.Mail.MailMessage Msg = new System.Web.Mail.MailMessage(); //Msg.From = emailNotificationsModel.EmailFrom; //Msg.To = mailTo; //Msg.Bcc = outgoingEmailLogModel.ExternalEmail; //Msg.Subject = outgoingEmailLogModel.EmailSubject; //Msg.Body = GenerateEmailBody(template, model, outgoingEmailLogModel); //// your remote SMTP server IP. //System.Web.Mail.SmtpMail.SmtpServer = "67.225.221.112";//your ip address //System.Web.Mail.SmtpMail.Send(Msg); var emailNotificationBA = new EmailNotifications(); var serialization = new Serialization(); var smtpClient = new SmtpClient(); var smtpClientOrg = new SmtpClient(emailNotificationsModel.SmtpHost); smtpClient = smtpClientOrg; var mailClient = new MailMessage(); var HashCriteria = new Hashtable(); string actualCriteria; mailClient.From = new MailAddress(emailNotificationsModel.EmailFrom, "Synoptek"); mailClient.To.Add(new MailAddress(mailTo)); List <EmailAddress> mailRecipients = new List <EmailAddress>(); mailRecipients.Add(new Mandrill.EmailAddress() { email = mailTo }); mailClient.Subject = outgoingEmailLogModel.EmailSubject; if (outgoingEmailLogModel.ExternalEmail != null) { mailClient.Bcc.Add(new MailAddress(outgoingEmailLogModel.ExternalEmail)); } mailClient.Body = GenerateEmailBody(template, model, outgoingEmailLogModel); mailClient.BodyEncoding = System.Text.Encoding.UTF8; mailClient.IsBodyHtml = true; smtpClientOrg.Credentials = new System.Net.NetworkCredential(emailNotificationsModel.EmailFrom, emailNotificationsModel.EmailPassword); smtpClientOrg.EnableSsl = emailNotificationsModel.EnableSSL; smtpClientOrg.Port = emailNotificationsModel.PortNumber; smtpClientOrg.Host = emailNotificationsModel.SmtpHost; smtpClient.UseDefaultCredentials = true; if (emailNotificationsModel.EnableEmailSending == "true") { //SendEmailAsync(mailClient, 1, smtpClient); // Email sent here '' MandrillAPI.SendEmail(mailRecipients, mailClient.Subject, emailNotificationsModel.EmailFrom, "Pixere Team", mailClient.Body); } var notifications = new OutgoingEmailLogModel(); notifications.Token = outgoingEmailLogModel.Token; if (outgoingEmailLogModel.EmailFrom != null) { notifications.EmailFrom = outgoingEmailLogModel.EmailFrom; } else { notifications.EmailFrom = emailNotificationsModel.EmailFrom; // if sender is null then email From will be email address from web config. } HashCriteria.Add("EmailTo", mailTo); HashCriteria.Add("EmailBody", mailClient.Body); HashCriteria.Add("EmailSubject", outgoingEmailLogModel.EmailSubject); HashCriteria.Add("TemplateCode", template); HashCriteria.Add("EmailFrom", notifications.EmailFrom); HashCriteria.Add("Token", outgoingEmailLogModel.Token); actualCriteria = serialization.SerializeBinary((object)HashCriteria); var result = emailNotificationBA.SaveOutgoingMessageLog(actualCriteria); var emailID = Convert.ToInt64(serialization.DeSerializeBinary(Convert.ToString(result))); }
public string GenerateEmailBody(string TemplateName, Object model = null, OutgoingEmailLogModel outgoingEmailLogModel = null) { var EmailBody = string.Empty; var HashCriteria = new Hashtable(); var HashCriteriaTemplate = new Hashtable(); var actualCriteria = string.Empty; var actualCriteriaTemplate = string.Empty; var serialization = new Serialization(); var emailNotificationBA = new EmailNotifications(); HashCriteriaTemplate.Add("TemplateCode", TemplateName); actualCriteriaTemplate = serialization.SerializeBinary((object)HashCriteriaTemplate); var result = Convert.ToString(emailNotificationBA.GetHtmlForTemplate(actualCriteriaTemplate)); EmailBody = Convert.ToString(serialization.DeSerializeBinary(Convert.ToString(result))); EmailBody = EmailBody.Replace("##Year##", Convert.ToString(DateTime.Now.ToString("yyyy"))); if (!string.IsNullOrEmpty(outgoingEmailLogModel.DomainName)) { EmailBody = EmailBody.Replace("##Domain##", outgoingEmailLogModel.DomainName); } switch (TemplateName) { case "ForgotPassword": var forgotPassword = (ForgotPassword)model; var newGuid = Guid.NewGuid(); outgoingEmailLogModel.Token = newGuid.ToString(); HashCriteria.Add("Email", forgotPassword.Email); actualCriteria = serialization.SerializeBinary((object)HashCriteria); var resultEmail = emailNotificationBA.GetUserNameFromEmailAddress(actualCriteria); // Get username from email address to display in template var UserName = Convert.ToString(serialization.DeSerializeBinary(Convert.ToString(resultEmail))); if (!string.IsNullOrEmpty(forgotPassword.Email)) { EmailBody = EmailBody.Replace("##UserName##", UserName); } if (!string.IsNullOrEmpty(outgoingEmailLogModel.Token)) { EmailBody = EmailBody.Replace("##Token##", outgoingEmailLogModel.Token); } break; case "Registration": var Registration = (UserProfileModel)model; if (!string.IsNullOrEmpty(Registration.Name)) { EmailBody = EmailBody.Replace("##UserName##", Registration.Name); EmailBody = EmailBody.Replace("##DiscourseURL##", Convert.ToString(ConfigurationManager.AppSettings["DiscourseUrl"])); } break; case "ContactBroker": var contactBroker = outgoingEmailLogModel; if (!string.IsNullOrEmpty(contactBroker.DealName)) { EmailBody = EmailBody.Replace("##DealName##", contactBroker.DealName); } if (!string.IsNullOrEmpty(contactBroker.ReceiverName)) { EmailBody = EmailBody.Replace("##BrokerName##", contactBroker.ReceiverName); } if (!string.IsNullOrEmpty(contactBroker.MessageBody)) { EmailBody = EmailBody.Replace("##Message##", contactBroker.MessageBody); } if (!string.IsNullOrEmpty(contactBroker.MessageSender)) { EmailBody = EmailBody.Replace("##MessageSender##", contactBroker.MessageSender); } break; case "ScheduleConsultation": var scheduleConsultation = outgoingEmailLogModel; if (!string.IsNullOrEmpty(scheduleConsultation.DealName)) { EmailBody = EmailBody.Replace("##DealName##", scheduleConsultation.DealName); } if (!string.IsNullOrEmpty(scheduleConsultation.ReceiverName)) { EmailBody = EmailBody.Replace("##BrokerName##", scheduleConsultation.ReceiverName); } if (!string.IsNullOrEmpty(scheduleConsultation.MessageBody)) { EmailBody = EmailBody.Replace("##Message##", scheduleConsultation.MessageBody); } if (!string.IsNullOrEmpty(scheduleConsultation.MessageSender)) { EmailBody = EmailBody.Replace("##MessageSender##", scheduleConsultation.MessageSender); } if (!string.IsNullOrEmpty(scheduleConsultation.EmailTo)) { EmailBody = EmailBody.Replace("##Email##", scheduleConsultation.EmailFrom); } if (!string.IsNullOrEmpty(scheduleConsultation.PhoneNumber)) { EmailBody = EmailBody.Replace("##PhoneNumber##", scheduleConsultation.PhoneNumber); } else { EmailBody = EmailBody.Replace("##PhoneNumber##", "Not Provided"); } break; case "MessageCenter": var MessageCenter = outgoingEmailLogModel; if (!string.IsNullOrEmpty(MessageCenter.DealName)) { EmailBody = EmailBody.Replace("##DealName##", MessageCenter.DealName); } if (!string.IsNullOrEmpty(MessageCenter.ReceiverName)) { EmailBody = EmailBody.Replace("##ReceiverName##", MessageCenter.ReceiverName); } if (!string.IsNullOrEmpty(MessageCenter.MessageBody)) { EmailBody = EmailBody.Replace("##Message##", MessageCenter.MessageBody); } if (!string.IsNullOrEmpty(MessageCenter.MessageSender)) { EmailBody = EmailBody.Replace("##MessageSender##", MessageCenter.MessageSender); } break; case "ContactBrokerUnlikeListing": var contactBrokerUnlikeListing = outgoingEmailLogModel; if (!string.IsNullOrEmpty(contactBrokerUnlikeListing.ReceiverName)) { EmailBody = EmailBody.Replace("##BrokerName##", contactBrokerUnlikeListing.ReceiverName); } if (!string.IsNullOrEmpty(contactBrokerUnlikeListing.MessageBody)) { EmailBody = EmailBody.Replace("##Message##", contactBrokerUnlikeListing.MessageBody); } if (!string.IsNullOrEmpty(contactBrokerUnlikeListing.MessageSender)) { EmailBody = EmailBody.Replace("##MessageSender##", contactBrokerUnlikeListing.MessageSender); } break; } return(EmailBody); }