public ActionResult Edit(UngDungCNTT ungDungCNTT) { var user = S4T_HaTinhBase.GetUserSession(); if (user == null) return RedirectToAction("Login", "Account", new { returnUrl = Request.Url.PathAndQuery }); var per = S4T_HaTinhBase.CheckPermission(Request.RequestContext.RouteData.GetRequiredString("controller")); if (per != PermissionType.Write) return Content(ExceptionViewer.GetMessage("UPDATE_NOT_PERMISSION")); if (ModelState.IsValid) { var mess = CheckReportStatus(user, TrangThaiNhapLieu.Sua); if (String.IsNullOrEmpty(mess)) { using (TransactionScope scope = new TransactionScope()) { try { using (var context = new S4T_HaTinhEntities()) { ungDungCNTT.Success = (byte)TrangThaiNhapLieu.DaGui; //ungDungCNTT.TruongNhapLai = string.Empty; // Xóa hết các yêu cầu nhập lại dữ liệu context.Entry(ungDungCNTT).State = EntityState.Modified; context.SaveChanges(); } // Đổi trạng thái nhập liệu trong bảng lịch nhập liệu var objLichNhap = db.Ht_LichNhapLieu.FirstOrDefault(o => o.TrangThai == TrangThai.HoatDong && o.DonVi_ID == ungDungCNTT.DonVi_ID && o.PhanHe_ID == objChucNang.PhanHeChucNang_ID && o.ChucNang_ID != TrangThaiNhapLieu.PheDuyet); objLichNhap.ChucNang_ID = TrangThaiNhapLieu.DaGui; db.Entry(objLichNhap).State = EntityState.Modified; db.SaveChanges(); // Cập nhật List PMCN List<UngDungCNTT_PMQLCN> listPMCN = (List<UngDungCNTT_PMQLCN>)TempData["UngDungCNTT_PMQLCN_" + user.Id]; if (listPMCN.Any()) { bool isAdd = false; var listInDb = db.UngDungCNTT_PMQLCN.Where(o => o.UngDungCNTT_ID == ungDungCNTT.UngDungCNTT_ID); if (listPMCN.Count() > listInDb.Count()) isAdd = true; foreach (UngDungCNTT_PMQLCN item in listPMCN) { UngDungCNTT_PMQLCN objInDb = listInDb.FirstOrDefault(o => o.Id == item.Id && o.Guid == item.Guid); // Thêm mới nếu ko tìm thấy trong db if (objInDb == null && isAdd) { item.UngDungCNTT_ID = ungDungCNTT.UngDungCNTT_ID; db.UngDungCNTT_PMQLCN.Add(item); db.SaveChanges(); } else { //This is the comparison class CompareLogic compareLogic = new CompareLogic(); ComparisonResult result = compareLogic.Compare(objInDb, item); //These will be different, write out the differences if (!result.AreEqual) { objInDb.LienThongDVTT = item.LienThongDVTT; objInDb.LienThongSBN = item.LienThongSBN; objInDb.LienThongUBNDCapHuyen = item.LienThongUBNDCapHuyen; objInDb.LienThongUBNDCapXa = item.LienThongUBNDCapXa; objInDb.TenPhanMem = item.TenPhanMem; db.Entry(objInDb).State = EntityState.Modified; db.SaveChanges(); } } } } scope.Complete(); } catch (DbEntityValidationException ex) { var exc = new ExceptionViewer(); ViewBag.Mess = exc.GetError(ex); scope.Dispose(); GetViewBag(user.DonVi_ID); return View(); } } return RedirectToAction("Index"); } return Content(mess); } GetViewBag(user.DonVi_ID); return View(ungDungCNTT); }