public ActionResult AddUpdate(systemEditViewModel viewModel) { ActionResult ar; var projectId = Session["projectId"]; if (projectId != null) { viewModel.editModel.projectId = new Guid(projectId.ToString()); ViewBag.projectName = Session["projectName"] + ""; ViewBag.projectLock = true; } else { return(RedirectToAction("Index", "Project")); } ViewBag.projectList = PMdropdownOption.projectList(); // two combo system type, system group ViewBag.systemTypeList = SDdropdownOptions.systemTypeList(); ViewBag.systemGroupList = SDdropdownOptions.systemGroupList(); string err; viewModel.clearMsg(); switch (viewModel.cmd) { case "save": err = checkForm(viewModel); if (err.Length > 0) { viewModel.errorMsg = err; ar = View(viewModel); break; } tblSystem ts = new tblSystem(); if (viewModel.pageStatus == (int)PAGE_STATUS.ADD) { viewModel.editModel.systemId = Guid.NewGuid(); viewModel.editModel.createtime = DateTime.Now; viewModel.editModel.systemArticleId = Guid.NewGuid(); using (var trans = ts.BeginTransaction()) { err += ts.Add(viewModel.editModel); err += ts.SaveChanges(); err += addSystemArticle(viewModel, ts.GetDbContext()); if (err.Length > 0) { trans.Rollback(); } else { trans.Commit(); } } if (err.Length == 0) { viewModel.successMsg = "new system saved"; viewModel.pageStatus = (int)PAGE_STATUS.ADDSAVED; } else { viewModel.errorMsg = err; } } else if (viewModel.pageStatus == (int)PAGE_STATUS.EDIT) { err += ts.Update(viewModel.editModel); err += ts.SaveChanges(); if (err.Length == 0) { viewModel.successMsg = "system updated"; viewModel.pageStatus = (int)PAGE_STATUS.SAVED; } else { viewModel.errorMsg = err; } } else { viewModel.errorMsg = "wrong page status " + viewModel.pageStatus; } ar = View(viewModel); break; case "addNew": systemEditViewModel tmpVM = new systemEditViewModel(); tmpVM.pageStatus = (int)PAGE_STATUS.ADD; TempData["systemEditViewModel"] = tmpVM; ar = RedirectToAction("AddUpdate"); return(ar); case "query": ar = RedirectToAction("Systems"); return(ar); default: ar = View(viewModel); break; } return(ar); }