//
        // GET: /F_CERL/Details/5

        public ActionResult Details(int id = 0)
        {
            vFCERL vfcerl = db.vFCERL.Find(id);

            if (vfcerl == null)
            {
                return(HttpNotFound());
            }
            InitAttachFiles(vfcerl.fID);

            IEnumerable <vTaskDetail> vTaskDetail = GetTaskDetail(vfcerl.fID);

            ViewData["vTaskDetail"] = vTaskDetail;
            return(View(vfcerl));
        }
        protected void InitDDL2(string ddlName, string root, int iWhere, vFCERL fcerl)
        {
            string[] stringArray = { "siteList", "testList", "requestList" };
            string[] MemberArray = { "SupervisorList", "LocalSupervisorList", "LabMemberList" };
            var      initlist    = edb.FnGeneralDropDownList(ddlName, root).Select(x => new { Id = x.Id, Name = x.Name }).ToList();

            if (stringArray.Contains(ddlName))
            {
                initlist = edb.FnTestItemMenuDropDownList(root.ToString()).Where(y => y.lvl == iWhere).Select(x => new { Id = x.Id, Name = x.Name }).ToList();
            }

            if (MemberArray.Contains(ddlName))
            {
                initlist = edb.FnMemberDropDownList(ddlName, root).Select(x => new { Id = x.BadgeCode, Name = x.Name }).ToList();
            }

            string selectedvalue = "";

            if (fcerl != null)
            {
                switch (ddlName)
                {
                case "siteList":
                    selectedvalue = fcerl.Site.ToString();
                    break;

                case "testList":
                    selectedvalue = fcerl.TestItem.ToString();
                    break;

                case "requestList":
                    selectedvalue = fcerl.RequestItem.ToString();
                    break;

                case "LabMemberList":
                    selectedvalue = fcerl.LabMember;
                    break;

                case "ProcessStepList":
                    selectedvalue = fcerl.ProcessStep.ToString();
                    break;

                case "TestPurposeList":
                    selectedvalue = fcerl.TestPurpose.ToString();
                    break;

                case "IssueSourceList":
                    selectedvalue = fcerl.IssueSource.ToString();
                    break;

                case "FailureSiteList":
                    selectedvalue = fcerl.FailureSite.ToString();
                    break;

                case "ReturnTypeList":
                    selectedvalue = fcerl.ReturnType.ToString();
                    break;

                case "CustomerNameList":
                    selectedvalue = fcerl.CustomerID.ToString();
                    break;

                default:
                    break;
                }
            }
            else
            {
                switch (ddlName)
                {
                case "UserRoleList":
                    selectedvalue = iWhere.ToString();
                    break;

                default:
                    break;
                }
            }

            List <SelectListItem> initList = new List <SelectListItem>();

            initList.Add(new SelectListItem()
            {
                Text  = "",
                Value = ""
            });

            foreach (var item in initlist)
            {
                initList.Add(new SelectListItem()
                {
                    Text     = item.Name,
                    Value    = item.Id.ToString(),
                    Selected = (item.Id.ToString() == selectedvalue)
                });
            }
            SelectList cList = new SelectList(initList, "Value", "Text");

            ViewData[ddlName] = cList;
            Session[ddlName]  = cList;
        }
示例#3
0
        public string SendMail(FlowPath fp, string fID)
        {
            string fnSendMail = "RouteWork_SendMail(FlowPath fp, string fID)";
            int    errorline  = 312;
            int    inState    = int.Parse(fp.inState.ToString());
            //http://iec1-aptest.iec.inventec/CERLLAB/F_CERL/DetailsLAB/
            string        FormUrl  = _cerllabwebsite + @"/F_CERL/EditLAB/";
            string        Form1Url = _cerllabwebsite + @"/F_CERL/EditLAB/";
            string        Form2Url = _cerllabwebsite + @"/F_CERL/DetailsLAB/";
            string        newLine2 = "<br />\r\n";
            string        newLine  = "\r\n";
            StringBuilder Body     = new StringBuilder();

            FormUrl = (fp.outState >= 1000) ? Form2Url : Form1Url;
            vFCERL fcerl = db.vFCERL.Where(x => x.fID == fID).FirstOrDefault();

            string editor = db.userprofile.Where(x => x.BadgeCode == UserId).Select(x => x.ChtName).FirstOrDefault();
            string ID     = fcerl.ID.ToString();

            try
            {
                string tableStyle = "table-layout: fixed;width:100%;border:1px solid;";
                string thStyle    = "color:#ffffff;background:#0078ae;font-weight:bold;width:30%;border:1px solid;";
                string tdStyle    = "width:70%;border:1px solid;";
                Body.Append(Method.BuildXML2(Method.BuildXML2("簽核者", "th", thStyle) + Method.BuildXML2(editor, "td", tdStyle), "tr"));
                Body.Append(Method.BuildXML2(Method.BuildXML2("UID", "th", thStyle) + Method.BuildXML2(fcerl.UID, "td", tdStyle), "tr"));
                Body.Append(Method.BuildXML2(Method.BuildXML2("Case ID", "th", thStyle) + Method.BuildXML2(fcerl.CaseID, "td", tdStyle), "tr"));
                Body.Append(Method.BuildXML2(Method.BuildXML2("申請人", "th", thStyle) + Method.BuildXML2(fcerl.Applicant, "td", tdStyle), "tr"));
                Body.Append(Method.BuildXML2(Method.BuildXML2("Background Desc.", "th", thStyle) + Method.BuildXML2(fcerl.BackgroundDesc, "td", tdStyle), "tr"));
                Body.Append(Method.BuildXML2(Method.BuildXML2("Tester", "th", thStyle) + Method.BuildXML2(fcerl.LabMember, "td", tdStyle), "tr"));
                Body.Append(Method.BuildXML2(Method.BuildXML2("Analysis Result", "th", thStyle) + Method.BuildXML2(fcerl.AnalysisResult, "td", tdStyle), "tr"));
                Body.Append(Method.BuildXML2(Method.BuildXML2("Comment", "th", thStyle) + Method.BuildXML2(fcerl.Comment, "td", tdStyle), "tr"));
                Body.Append(Method.BuildXML2(Method.BuildXML2("已完成階段", "th", thStyle) + Method.BuildXML2(fp.inStateName, "td", tdStyle), "tr"));
                Body.Append(Method.BuildXML2(Method.BuildXML2("下個階段", "th", thStyle) + Method.BuildXML2(fp.outStateName, "td", tdStyle), "tr"));

                string        EmailTitile   = "";
                string        outStateTitle = fp.outStateName;
                StringBuilder classstyle    = new StringBuilder("<style type='text/css'>");
                classstyle.Append("table{table-layout: fixed;width:100%;border:1px solid;}");
                classstyle.Append("th{color:#ffffff;background:#0078ae;font-weight:bold;width:30%;border:1px solid;}");
                classstyle.Append("td{width:70%;border:1px solid;}");
                classstyle.Append("</style>");
                string tmpBody = "<table style='" + tableStyle + "'>" + Body.ToString() + "</table>";
                Body.Clear();
                Body.Append(classstyle.ToString());
                Body.Append("您有一張 ");
                Body.Append(outStateTitle);
                Body.Append(" 的" + fcerl.ParentTestItem + "表單");
                Body.Append(tmpBody);
                Body.Append(newLine2);
                Body.Append(Method.BuildXML2(Method.BuildXML2("請進入此網址查看<a href='" + FormUrl + ID + "'>CERLLAB</a>", "td"), "tr"));

                EmailTitile = Constant.MailTest + "[" + fcerl.UID + ", " + fcerl.CaseID + "] CERLLAB " + outStateTitle + " 通知";

                var maillist = edb.FnGetMailList(fcerl.ListAssignTo).Select(v => v.Email).ToList();
                //var maillist = db.mail_test.Select(v => v.Email).ToList();
                errorline = 364;
                List <string> conItemList = new List <string>();
                foreach (var item in maillist)
                {
                    conItemList.Add(item);
                }
                errorline = 370;
                List <string> CCUserList    = new List <string>();
                var           sfauserList   = db.s_form_authority.Where(x => x.fID == fcerl.fID && x.outState == fp.outState);
                string        ccmailcontext = "";
                if (sfauserList != null)
                {
                    if (sfauserList.Count() > 0)
                    {
                        var sfauser = sfauserList.FirstOrDefault();
                        if (sfauser.MemberCodeList != null)
                        {
                            ccmailcontext = sfauser.MemberCodeList;
                        }
                    }
                }
                errorline = 384;
                if (ccmailcontext != null)
                {
                    if (ccmailcontext.Trim().Length > 0)
                    {
                        maillist = edb.FnGetMailList2(ccmailcontext).Select(x => x.Email).ToList();
                        foreach (var item in maillist)
                        {
                            CCUserList.Add(item);
                        }
                    }
                }
                errorline = 396;
                try
                {
                    errorline = 399;
                    Method.SendMail(conItemList, CCUserList, EmailTitile, Body.ToString());
                }
                catch (Exception ex)
                {
                    string        msg = ex.Message;
                    StringBuilder sb  = new StringBuilder();
                    sb.Append("Issue at line 406: occur error after line " + errorline.ToString() + msg);
                    sb.Append(newLine);
                    sb.Append(fcerl.ID + " " + fcerl.State);
                    syserrdb.InitErrorData(Src: fnSendMail, content: sb.ToString(), editor: UserId);

                    conItemList.Clear();
                    conItemList.Add(Constant.DefaultMailBcc);
                    CCUserList.Clear();
                    Body.Append(newLine);
                    Body.Append(ex.Message);
                    Method.SendMail(conItemList, CCUserList, EmailTitile, Body.ToString());
                }
            }
            catch (Exception ex)
            {
                string        msg = ex.Message;
                StringBuilder sb  = new StringBuilder();
                sb.Append("Issue at line 423: occur error after line " + errorline.ToString() + msg);
                sb.Append(newLine);
                sb.Append(fcerl.ID + " " + fcerl.State);
                syserrdb.InitErrorData(Src: fnSendMail, content: sb.ToString(), editor: UserId);
            }
            return(Body.ToString());
        }