public ActionResult SetMailTemplate(MailTemplateSetModels model)
        {
            model.MailContent = HttpUtility.UrlDecode(model.MailContent);
            bool Result = MemberShipSettingDAO.SetMailTemplateItems(model);

            return(Json(Result ? "success" : "fail"));
        }
        public ActionResult GetAgreeStatement()
        {
            AgreeStatementSetModels model = MemberShipSettingDAO.GetStatementItems();

            // model.StatementContent = HttpUtility.UrlEncode(model.StatementContent);
            return(Json(model, JsonRequestBehavior.AllowGet));
        }
        public ActionResult GetMailTemplate(string TemplateName)
        {
            MailTemplateSetModels model = MemberShipSettingDAO.GetMailTemplateItems(TemplateName);

            // model.StatementContent = HttpUtility.UrlEncode(model.StatementContent);

            return(Json(model, JsonRequestBehavior.AllowGet));
        }
        public ActionResult TryToMail(long SiteID, long MenuID, string TemplateName)
        {
            ViewBag.SiteID       = SiteID;
            ViewBag.MenuID       = MenuID;
            ViewBag.TemplateName = TemplateName;
            MailTemplateSetModels model = MemberShipSettingDAO.GetMailTemplateItems(TemplateName);

            return(View(model));
        }
        public ActionResult SetAgreeStatement(AgreeStatementSetModels model)
        {
            model.ModuleName       = "Member";
            model.StatementContent = HttpUtility.UrlDecode(model.StatementContent);
            bool Result       = MemberShipSettingDAO.SetStatementItems(model);
            bool colSetResult = MemberShipRegSetDAO.UpdateItemSet(PageCache.SiteID, "IsNeedAgreeMemberDesc", model.IsNeedAgree.ToString().ToLower());

            if (!colSetResult)
            {
                return(Json("fail"));
            }
            return(Json(Result ? "success" : "fail"));
        }
        public ActionResult DeleteFile(string TemplateName, int fileIndex)
        {
            MailTemplateSetModels model = MemberShipSettingDAO.GetMailTemplateItems(TemplateName);
            List <WorkV3.Models.ResourceFilesModels> fileList = Newtonsoft.Json.JsonConvert.DeserializeObject <List <WorkV3.Models.ResourceFilesModels> >(model.AttFiles);

            if (fileIndex < fileList.Count)
            {
                fileList.RemoveAt(fileIndex);
            }
            model.AttFiles = Newtonsoft.Json.JsonConvert.SerializeObject(fileList);
            bool Result = MemberShipSettingDAO.SetMailTemplateItems(model);

            return(Json(Result ? "success" : "fail"));
        }
        public ActionResult SentTryMail(long SiteID, long MenuID, string TemplateName, string MailToList)
        {
            ViewBag.SiteID       = SiteID;
            ViewBag.MenuID       = MenuID;
            ViewBag.TemplateName = TemplateName;
            string message              = "";
            string SitesTitle           = WorkV3.Models.DataAccess.SitesDAO.GetInfo(SiteID).Title;
            MailTemplateSetModels model = MemberShipSettingDAO.GetMailTemplateItems(TemplateName);

            if (model == null)
            {
                return(Json(new { result = "fail", message = "範本取得失敗" }));
            }
            if (!string.IsNullOrEmpty(MailToList))
            {
                int    mailCount   = 0;
                string mailSubject = model.MailTitle
                                     .Replace("[WebsiteName]", SitesTitle);//Joe 20190924 改抓網站名稱
                string mailContent = model.MailContent
                                     .Replace("[WebsiteName]", SitesTitle)
                                     .Replace("[SendDate]", DateTime.Now.ToString("yyyy/MM/dd"));
                ArrayList attFileList = new ArrayList();
                if (!string.IsNullOrEmpty(model.AttFiles))
                {
                    string UploadVPath = WorkV3.Golbal.UpdFileInfo.GetUPathByMenuID(SiteID, MenuID);
                    List <WorkV3.Areas.Backend.Models.ResourceFilesModels> fileList = Newtonsoft.Json.JsonConvert.DeserializeObject <List <WorkV3.Areas.Backend.Models.ResourceFilesModels> >(model.AttFiles);
                    foreach (WorkV3.Areas.Backend.Models.ResourceFilesModels f in fileList)
                    {
                        //System.Net.Mail.Attachment attFile = new System.Net.Mail.Attachment(UploadVPath + "/" + f.FileInfo);
                        attFileList.Add(UploadVPath + f.FileInfo);
                    }
                }
                string[] mailTos = MailToList.Split(';');
                foreach (string mailTo in mailTos)
                {
                    try
                    {
                        new System.Net.Mail.MailAddress(mailTo);
                    }
                    catch
                    {
                        message += string.Format("[{0}]需為 E-Mail 格式\n", mailTo);
                        continue;
                    }
                    if (attFileList.Count > 0)
                    {
                        WorkLib.uEMail.SendMailWithFiles(mailTo, "", mailSubject, mailContent, attFileList, model.MailFromAddress, SitesTitle);
                    }
                    else
                    {
                        WorkLib.uEMail.SendEMail(mailTo, "", mailSubject, mailContent, model.MailFromAddress, SitesTitle);
                    }
                    mailCount++;
                }
                message += string.Format("共寄出{0}封測試信件", mailCount.ToString());
                //string VerifyUrl = string.Format("{0}://{1}{2}{3}/w/{4}/Verify?M={5}&K={6}", HttpContext.Current.Request.Url.Scheme,
                //    HttpContext.Current.Request.Url.DnsSafeHost,
                //    HttpContext.Current.Request.Url.Port == 80 ? "" : ":" + HttpContext.Current.Request.Url.Port.ToString(),
                //    HttpContext.Current.Request.ApplicationPath == "/" ? "" : "/" + HttpContext.Current.Request.ApplicationPath.Trim('/'),
                //    WorkLib.GetItem.appSet("DefaultSiteSN").ToString(),
                //    tableObj["ID"].ToString(), item.VerifyCode);
            }
            else
            {
            }
            return(Json(new { result = "success", message = message }));
        }