public ActionResult Edit(int id = 0) { f_cerl f_cerl = db.f_cerl.Find(id); if (f_cerl == null) { return(HttpNotFound()); } //initDDL(); //FlowPath flowpath = GetFlowPath(f_cerl.fID, f_cerl.FlowCode, f_cerl.State, "A"); //if (flowpath != null) //{ // if (flowpath.inStateAction != null) // { IEnumerable <FormActions> formactions = GetFormAction(f_cerl.FlowCode, f_cerl.State); ViewData["FormAction"] = formactions; // } //} //if (f_cerl.TestItem == 2002100) //{ //} IEnumerable <vTaskDetail> vTaskDetail = GetTaskDetail(f_cerl.fID); ViewData["vTaskDetail"] = vTaskDetail; InitDDLShow(f_cerl, "EDIT"); InitAttachFiles(f_cerl.fID); return(View(f_cerl)); }
protected void InitDDLShow(f_cerl f_cerl, string action) { InitDDL("siteList", "0", 0, f_cerl); InitDDL("testList", "1000000", 1, f_cerl); InitDDL("requestList", "1001100", 0, f_cerl); InitDDL("ReturnTypeList", "0", 0, f_cerl); InitDDL("CustomerNameList", "0", 0, f_cerl); InitDDL("FailureSiteList", "0", 0, f_cerl); InitDDL("IssueSourceList", "0", 0, f_cerl); InitDDL("TestPurposeList", "0", 0, f_cerl); InitDDL("ProcessStepList", "0", 0, f_cerl); InitDDL("SupervisorList", "20", 0, f_cerl); InitDDL("UserRoleList", Constant.LogonUserId, 0, f_cerl); //InitDDL("LocalSupervisor", f_cerl.TestItem.ToString(), 0, f_cerl); if (action.ToUpper() == "EDIT") { InitDDL("LocalSupervisorList", f_cerl.TestItem.ToString(), 0, f_cerl); InitDDL("LabMemberList", f_cerl.TestItem.ToString(), 0, f_cerl); } else { InitDDL("LocalSupervisorList", "30", 0, f_cerl); InitDDL("LabMemberList", "40", 0, f_cerl); } }
public bool CheckUserUnsignedTask(string fID) { bool rslt = false; List <int> UserRole = db.vUserRole.Where(x => x.BadgeCode == UserId).Select(x => x.RoleId).ToList(); f_cerl fcerl = db.f_cerl.Where(x => x.fID == fID).FirstOrDefault(); rslt = (UserRole.Contains(1)) ? true : false; if (rslt == true) // Admin? { return(rslt); } try { IEnumerable <vTaskDetail> objfp = GetUnsignedTask(UserId); List <string> unsinged = objfp.Where(x => x.FID == fID).Select(x => x.FID).ToList(); // 允許使用者自行移轉 if (unsinged != null && fcerl != null) { if (unsinged.Count > 0 || (fcerl.State == 10 && fcerl.Applicant == UserId)) { rslt = true; } } } catch { } return(rslt); }
public ActionResult DeleteConfirmed(int id) { f_cerl f_cerl = db.f_cerl.Find(id); db.f_cerl.Remove(f_cerl); db.SaveChanges(); return(RedirectToAction("Index")); }
// // GET: /F_CERL/Delete/5 public ActionResult Delete(int id = 0) { f_cerl f_cerl = db.f_cerl.Find(id); if (f_cerl == null) { return(HttpNotFound()); } return(View(f_cerl)); }
// // GET: /F_CERL/Edit/5 public f_cerl CheckAndPushTask(FormCollection fc, f_cerl f_cerl) { string strAction = f_cerl.Action; string ListAssignTo = ""; HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK); StringBuilder vchSet = new StringBuilder(); FlowPath fp = GetFlowPath(f_cerl.fID, f_cerl.FlowCode, f_cerl.State, f_cerl.Action);// 取得下一關的State if (fp == null) { return(f_cerl); } if (f_cerl.State >= 1000) { strAction = ""; return(f_cerl); } if (fp != null) { if (f_cerl.LocalSupervisor == null) { f_cerl.LocalSupervisor = "IEC970209"; } vchSet.Append(Method.BuildXML(fp.outState.ToString(), "outState")); vchSet.Append(Method.BuildXML(f_cerl.Supervisor, "Supervisor")); vchSet.Append(Method.BuildXML(f_cerl.LocalSupervisor, "LocalSupervisor")); vchSet.Append(Method.BuildXML(f_cerl.LabMember, "LabMember")); vchSet.Append(Method.BuildXML(f_cerl.Applicant, "Applicant")); vchSet.Append(Method.BuildXML(f_cerl.Manager, "Manager")); vchSet.Append(Method.BuildXML(f_cerl.Action, "")); GetListAssignTo(fp.outState, vchSet.ToString(), out ListAssignTo); //取得下一關的收件人 f_cerl.ListAssignTo = ListAssignTo; if (ListAssignTo != "") { response = PostFormDataToRoute(fc, f_cerl); //Push Task, Send Task mail by AssignTo } f_cerl.State = int.Parse(fp.outState.ToString()); } return(f_cerl); }
public HttpResponseMessage PostFormDataToRoute(FormCollection fc, f_cerl f_cerl) { HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK); NameValueCollection dyndata = new NameValueCollection(); string Action = f_cerl.Action; if (Action == null) { Action = ""; } dyndata.Add("FID", f_cerl.fID); dyndata.Add("FormCode", f_cerl.FormCode.ToString()); dyndata.Add("FlowCode", f_cerl.FlowCode.ToString()); dyndata.Add("Applicant", f_cerl.Applicant); dyndata.Add("ListAssignTo", f_cerl.ListAssignTo); // 用分號打包卡號, EX: IEC891652;IEC950848 dyndata.Add("State", f_cerl.State.ToString()); dyndata.Add("Action", f_cerl.Action); dyndata.Add("Editor", UserId); dyndata.Add("Comment", f_cerl.Comment); //string strJson = Newtonsoft.Json.JsonConvert.SerializeObject(dyndata); using (var wb = new WebClient()) { var wi = _userwi; var wic = wi.Impersonate(); wb.Headers.Set("CONTENT-TYPE", "application/x-www-form-urlencoded"); wb.UseDefaultCredentials = true; //wb.Credentials = new NetworkCredential(Constant.NetworkCredentialUserId, Constant.NetworkCredentialPWD); string url = _formcontroller.Url.RouteUrl(@"DefaultApi", new { action = "Task", controller = "api" }); if (url == null) { url = Constant.RoutesWebSite + @"/api/task/Post"; } byte[] rslt = wb.UploadValues(url, dyndata); } return(response); }
public ActionResult Edit(FormCollection fc, f_cerl f_cerl) { if (f_cerl.State >= 1000) { InitDDLShow(null, "EDIT"); return(View(f_cerl)); } string UserId = Constant.LogonUserId; if (ModelState.IsValid) { if (TryUpdateModel(f_cerl, "", fc.AllKeys, new string[] { "cdt" })) { f_cerl = CheckAndPushTask(fc, f_cerl); f_cerl.udt = DateTime.Now; f_cerl.editor = UserId; var r = new List <attachFile>(); int i = 0; foreach (string file in Request.Files) { HttpPostedFileBase hpf = Request.Files[i] as HttpPostedFileBase; if (hpf.ContentLength == 0) { continue; } string formId = f_cerl.fID; string state = f_cerl.State.ToString(); string filePath0 = Constant.UserFileDirectory + formId + @"\"; string filePath = Constant.UserFileDirectory + formId + @"\" + state + @"\"; FileInfo newinfo = new FileInfo(hpf.FileName); string savedFileName = Path.Combine(filePath, Path.GetFileName(newinfo.Name)); if (!Directory.Exists(filePath0)) { Directory.CreateDirectory(filePath0); } if (!Directory.Exists(filePath)) { Directory.CreateDirectory(filePath); } hpf.SaveAs(savedFileName); int count = db.attachFiles.Where(x => x.fID == formId && x.folderId == state && x.fileName == newinfo.Name).Count(); if (count == 0) { r.Add(new attachFile() { fID = formId, displayname = newinfo.Name, fileName = newinfo.Name, Length = hpf.ContentLength, Type = hpf.ContentType, folderId = state, editor = Constant.LogonUserId, filePath = filePath, cdt = DateTime.Now, udt = DateTime.Now }); } i++; } foreach (attachFile a in r) { db.attachFiles.Add(a); } } db.Entry(f_cerl).State = EntityState.Modified; db.SaveChanges(); //return RedirectToAction("Index"); RouteValueDictionary rv = new RouteValueDictionary(); rv.Add("id", f_cerl.ID); return(RedirectToAction("Details", rv)); //InitDDLShow(); //return RedirectToAction("Index"); } return(View(f_cerl)); }
public ActionResult Create(FormCollection fc, f_cerl f_cerl) { StringBuilder vchSet = new StringBuilder(); string Editor = Method.GetLogonUserId(Session, User.Identity.Name); string State = "10"; int FlowCode = 1001001; string FormId = System.Guid.NewGuid().ToString().ToUpper(); vchSet.Append(Method.BuildXML(f_cerl.TestItem.ToString(), "TestItem")); vchSet.Append(Method.BuildXML(f_cerl.CustomerID.ToString(), "CustomerID")); vchSet.Append(Method.BuildXML(f_cerl.ProjectName, "ProjectName")); string CaseId = edb.FnGetCaseID(vchSet.ToString()).FirstOrDefault().CaseID; string UID = edb.FnGetCaseID(vchSet.ToString()).FirstOrDefault().UID; f_cerl.fID = FormId; f_cerl.FlowCode = FlowCode; f_cerl.FormCode = int.Parse(f_cerl.TestItem.ToString()); f_cerl.CaseID = CaseId; f_cerl.UID = UID; f_cerl.State = int.Parse(State); f_cerl.editor = Editor; f_cerl.Applicant = Editor; f_cerl.cdt = DateTime.Now; f_cerl.udt = DateTime.Now; if (TryUpdateModel(f_cerl, "", fc.AllKeys, new string[] { "fID", "Manager", "FlowCode", "FormCode", "Applicant", "editor", "State", "udt", "cdt" })) { if (ModelState.IsValid) { if (f_cerl.Manager == null) { f_cerl.Manager = "IEC970209"; // test Manager } var r = new List <attachFile>(); int i = 0; foreach (string file in Request.Files) { HttpPostedFileBase hpf = Request.Files[i] as HttpPostedFileBase; if (hpf.ContentLength == 0) { continue; } string formId = FormId; string state = State; string filePath0 = Constant.UserFileDirectory + formId + @"\"; string filePath = Constant.UserFileDirectory + formId + @"\" + state + @"\"; FileInfo newinfo = new FileInfo(hpf.FileName); string savedFileName = Path.Combine(filePath, Path.GetFileName(newinfo.Name)); if (!Directory.Exists(filePath0)) { Directory.CreateDirectory(filePath0); } if (!Directory.Exists(filePath)) { Directory.CreateDirectory(filePath); } hpf.SaveAs(savedFileName); r.Add(new attachFile() { fID = formId, displayname = newinfo.Name, fileName = newinfo.Name, Length = hpf.ContentLength, Type = hpf.ContentType, folderId = state, editor = Editor, filePath = filePath, cdt = DateTime.Now, udt = DateTime.Now }); i++; } foreach (attachFile a in r) { db.attachFiles.Add(a); } f_cerl = CheckAndPushTask(fc, f_cerl); db.f_cerl.Add(f_cerl); db.SaveChanges(); } return(RedirectToAction("Index")); } return(View(f_cerl)); }
protected void InitDDL(string ddlName, string root, int iWhere, f_cerl 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 "SupervisorList": selectedvalue = fcerl.Supervisor; break; case "LocalSupervisorList": selectedvalue = fcerl.LocalSupervisor; 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>(); 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; }
public f_cerl CheckAndPushTask(FormCollection fc, f_cerl f_cerl) { string fnCheckAndPushTask = "RouteWork_CheckAndPushTask"; string UserId = f_cerl.editor; string strAction = f_cerl.Action; string ListAssignTo = ""; int errorline = 233; try { HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK); StringBuilder vchSet = new StringBuilder(); errorline = 238; FlowPath fp = GetFlowPath(f_cerl.fID, f_cerl.FlowCode, f_cerl.State, f_cerl.Action); // 取得下一關的State errorline = 240; if (fp == null) { return(f_cerl); } if (f_cerl.State >= 1000) { strAction = ""; return(f_cerl); } errorline = 249; if (fp != null) { if (f_cerl.LocalSupervisor == null) { f_cerl.LocalSupervisor = db.vUsers.Where(u => u.RoleId == 20).Select(v => v.BadgeCode).FirstOrDefault();//"IEC970209"; } errorline = 254; if (f_cerl.Manager == null) { f_cerl.Manager = f_cerl.Applicant; } errorline = 257; vchSet.Append(Method.BuildXML(fp.outState.ToString(), "outState")); vchSet.Append(Method.BuildXML(f_cerl.TestItem.ToString(), "TestItem")); vchSet.Append(Method.BuildXML(f_cerl.Supervisor, "Supervisor")); vchSet.Append(Method.BuildXML(f_cerl.LocalSupervisor, "LocalSupervisor")); vchSet.Append(Method.BuildXML(f_cerl.LabMember, "LabMember")); vchSet.Append(Method.BuildXML(f_cerl.Applicant, "Applicant")); vchSet.Append(Method.BuildXML(f_cerl.Manager, "Manager")); vchSet.Append(Method.BuildXML(f_cerl.Action, "")); errorline = 266; GetListAssignTo(fp.outState, vchSet.ToString(), out ListAssignTo); //取得下一關的收件人 f_cerl.ListAssignTo = ListAssignTo; errorline = 269; if (ListAssignTo != "") { errorline = 272; response = PostFormDataToRoute(fc, f_cerl); //Push Task, Send Task mail by AssignTo f_cerl.State = int.Parse(fp.outState.ToString()); db.Entry(f_cerl).State = EntityState.Modified; db.SaveChanges(); errorline = 278; SendMail(fp, f_cerl.fID); errorline = 280; } errorline = 282; } f_cerl.Comment = ""; } catch (Exception ex) { string msg = ex.Message; string newLine = "\r\n"; StringBuilder sb = new StringBuilder(); sb.Append("Issue at line 291: occur error after line " + errorline.ToString() + msg); sb.Append(newLine); sb.Append(f_cerl.ID + " " + f_cerl.State); syserrdb.InitErrorData(Src: fnCheckAndPushTask, content: sb.ToString(), editor: UserId); } return(f_cerl); }