Пример #1
0
        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);
        }
Пример #2
0
        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));
        }
Пример #3
0
        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);
        }
Пример #5
0
        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)));
        }
Пример #6
0
        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);
        }