public ActionResult GenerateMail(string mode, string topic_code, string dept = null, string[] dept_arry = null, string due_date = "", string pos = "") { try{ Topic = M_Mail.GetTopicByCode(topic_code); ViewBag.Mode = mode; ViewBag.Url = $"http://172.27.170.19/ChangeControl/Detail/Index/?id={Topic.Code}"; // ViewBag.Url = $"{Request.Url.Host}:{Request.Url.Port}/{Request.ApplicationPath}/Detail/Index/?id={Topic.Code}"; ViewBag.Topic = Topic; ViewBag.DueDate = due_date; if (ViewBag.Topic.FullStatus == "Waiting") { ViewBag.Topic.FullStatus = "Request"; } var email = RenderView("~/Views/Mail/index.cshtml", Topic); var address_list = new List <string>(); List <String> temp_email_list = new List <string>(); if (dept_arry != null) //Dept as array { foreach (var temp_dept in dept_arry) { temp_email_list = M_Mail.GetEmailByDeptAndPosition(temp_dept, pos); if (temp_email_list != null) { address_list.AddRange(temp_email_list); } } } else if (dept == "" || dept == null) //Default department that related { var related_list = M_Mail.GetRelatedByTopicCode(topic_code); related_list.ForEach(rl => { temp_email_list = M_Mail.GetEmailByDeptAndPosition(rl, pos); if (temp_email_list != null) { address_list.AddRange(temp_email_list); } }); } else //Single department { temp_email_list = M_Mail.GetEmailByDeptAndPosition(dept, pos); if (temp_email_list != null) { address_list.AddRange(temp_email_list); } } if (temp_email_list != null) { SendMail(email, address_list); } return(Json(new { status = true }, JsonRequestBehavior.AllowGet)); // return View(Topic); }catch (Exception err) { return(Json(new { error = err }, JsonRequestBehavior.AllowGet)); } }