예제 #1
0
        public ActionResult UserFeedbacks(UserFeedback userFeedback)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    DSRCManagementSystemEntities1 odb = new DSRCManagementSystemEntities1();
                    //  var logo = odb.Master_ApplicationSettings.Where(x => x.AppID == 7).Select(x => x).FirstOrDefault();
                    string ServerName = AppValue.GetFromMailAddress("ServerName");
                    int    userID     = Convert.ToInt32(Session["UserID"]);
                    string email      = Convert.ToString(Session["UserName"]);

                    string pathvalue = CommonLogic.getLogoPath();



                    //var logo = odb.Master_ApplicationSettings.Where(x => x.AppID == 7).Select(x => x).FirstOrDefault();
                    //string[] words;

                    //words = logo.AppValue.Split(new string[] { "../../" }, StringSplitOptions.None);

                    //string pathvalue = "~/" + words[1];



                    var obj = new UsersFeedback()
                    {
                        UserID       = userID,
                        Feedback     = userFeedback.Feedback,
                        FeedbackDate = DateTime.Now
                    };
                    db.UsersFeedbacks.AddObject(obj);
                    db.SaveChanges();


                    string MailMessage = MailBuilder.FeedBack(Session["FirstName"].ToString(), Session["LastName"].ToString(), userFeedback.Feedback.Replace(Environment.NewLine, "</br>"));

                    var check  = db.EmailTemplates.Where(x => x.TemplatePurpose == "Feedback").Select(o => o.EmailTemplateID).FirstOrDefault();
                    var folder = db.EmailTemplates.Where(o => o.TemplatePurpose == "Feedback").Select(x => x.TemplatePath).FirstOrDefault();
                    if ((check != null) && (check != 0))
                    {
                        var objFeedback = (from p in db.EmailPurposes.Where(x => x.EmailPurposeName == "Feedback")
                                           join q in db.EmailTemplates on p.EmailTemplateID equals q.EmailTemplateID
                                           select new DSRCManagementSystem.Models.Email
                        {
                            To = p.To,
                            CC = p.CC,
                            BCC = p.BCC,
                            Subject = p.Subject,
                            Template = q.TemplatePath
                        }).FirstOrDefault();

                        string TemplatePathFeedback = Server.MapPath(objFeedback.Template);
                        var    company      = db.Master_ApplicationSettings.Where(x => x.AppKey == "Company Name").Select(o => o.AppValue).FirstOrDefault();
                        string htmlFeedback = System.IO.File.ReadAllText(TemplatePathFeedback);
                        htmlFeedback = htmlFeedback.Replace("#SenderName", Session["FirstName"].ToString() + " " + Session["LastName"].ToString());
                        htmlFeedback = htmlFeedback.Replace("#Comments", userFeedback.Feedback.Replace(Environment.NewLine, "</br>"));
                        htmlFeedback = htmlFeedback.Replace("#ServerName", ServerName);
                        htmlFeedback = htmlFeedback.Replace("#CompanyName", company);

                        //string ServerName = WebConfigurationManager.AppSettings["SeverName"];

                        if (ServerName != "http://*****:*****@dsrc.co.in");
                            //MailIds.Add("*****@*****.**");
                            //MailIds.Add("*****@*****.**");
                            //MailIds.Add("*****@*****.**");
                            //MailIds.Add("*****@*****.**");
                            //MailIds.Add("*****@*****.**");

                            string EmailAddress = "";

                            foreach (string mail in MailIds)
                            {
                                EmailAddress += mail + ",";
                            }

                            EmailAddress = EmailAddress.Remove(EmailAddress.Length - 1);

                            string CCMailId  = "*****@*****.**";
                            string BCCMailId = "*****@*****.**";

                            Task.Factory.StartNew(() =>
                            {
                                DsrcMailSystem.MailSender.SendMailToALL(null, objFeedback.Subject + " - Test Mail Please Ignore", null, htmlFeedback + " - Testing Plaese ignore", "*****@*****.**", EmailAddress, CCMailId, BCCMailId, Server.MapPath(pathvalue.ToString()));
                            });
                        }
                        else
                        {
                            Task.Factory.StartNew(() =>
                            {
                                DsrcMailSystem.MailSender.SendMailToALL(null, objFeedback.Subject, "", htmlFeedback, "*****@*****.**", objFeedback.To, objFeedback.CC, objFeedback.BCC, Server.MapPath(pathvalue.ToString()));
                            });
                        }
                    }
                    else
                    {
                        // string ServerName = WebConfigurationManager.AppSettings["SeverName"];
                        ExceptionHandlingController.TemplateMissing("Feedback", folder, ServerName);
                    }
                    //DsrcMailSystem.MailSender.SendMail("", "Feedback", "", MailMessage, email, "*****@*****.**", Server.MapPath("~/Content/Template/images/logo.png")); });
                    //Task.Factory.StartNew(() => { DsrcMailSystem.MailSender.SendMail("", "Feedback", "", userFeedback.Feedback, email, "*****@*****.**", Server.MapPath("~/Content/Template/images/logo.png")); });
                    userFeedback.StatusMessage = "Success";
                }
                return(View(userFeedback));
            }
            catch (Exception Ex)
            {
                string actionName     = this.ControllerContext.RouteData.Values["action"].ToString();
                string controllerName = this.ControllerContext.RouteData.Values["controller"].ToString();
                ExceptionHandlingController.ExceptionDetails(Ex, actionName, controllerName);
            }
            return(View(userFeedback));
        }