Example #1
0
        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);
        }