public ActionResult Edit(Course course) { var courseDb = DbContext.Courses.Find(course.CourseId); if (courseDb == null) { ModelState.AddModelError(string.Empty, "Không thể lưu thay đổi, nhóm đã bị xóa"); } else if (courseDb.TeacherId != User.Identity.GetUserId()) { return RedirectAccessDeniedPage(); } if (course.EndTime.HasValue && course.StartTime >= course.EndTime.Value) { ModelState.AddModelError("EndTime", "Thời gian kết thúc phải lớn hơn thời gian bắt đầu"); } if (ModelState.IsValid) { try { TryUpdateModel(courseDb, new[] {"CourseId","CourseName", "Description", "Actived", "StartTime", "EndTime"}); DbContext.Entry(courseDb).OriginalValues["RowVersion"] = course.RowVersion; DbContext.Entry(courseDb).State = EntityState.Modified; if (DbContext.SaveChanges() > 0) { return Redirect(null); } } catch (DbUpdateConcurrencyException ex) { var entry = ex.Entries.Single(); var clientValues = (Course)entry.Entity; var databaseEntry = entry.GetDatabaseValues(); if (databaseEntry == null) { ModelState.AddModelError(string.Empty, "Không thể lưu thay đổi, khóa học đã bị xóa"); } else { var databaseValues = (Course)databaseEntry.ToObject(); if (databaseValues.CourseName != clientValues.CourseName) ModelState.AddModelError("CourseName", "Giá trị hiện tại: " + databaseValues.CourseName); if (databaseValues.Description != clientValues.Description) ViewBag.CurrentDescription = "Giá trị hiện tại: " + databaseValues.Description; if (databaseValues.EndTime.HasValue && !clientValues.EndTime.HasValue) { ModelState.AddModelError("EndTime", "Giá trị hiện tại: " + databaseValues.EndTime.Value.ToString("dd/MM/yyyy")); } else if (!databaseValues.EndTime.HasValue && clientValues.EndTime.HasValue) { ModelState.AddModelError("EndTime", "Giá trị hiện tại: chưa có"); } else if (clientValues.EndTime.HasValue && databaseValues.EndTime.HasValue && databaseValues.EndTime.Value != clientValues.EndTime.Value) { ModelState.AddModelError("EndTime", "Giá trị hiện tại: " + databaseValues.EndTime.Value.ToString("dd/MM/yyyy")); } if (databaseValues.StartTime != clientValues.StartTime) ModelState.AddModelError("StartTime", "Giá trị hiện tại: " + databaseValues.StartTime.ToString("dd/MM/yyyy")); if (databaseValues.Actived != clientValues.Actived) ModelState.AddModelError("Actived", "Giá trị hiện tại: " + databaseValues.Actived); ModelState.AddModelError(string.Empty, "Nội dung bạn đang cập nhật đã được cập nhật bởi một người khác. " + "Những giá trị hiện tại trong CSDL sẽ được hiển thị trên màn hình. " + "Nếu bạn vẫn muốn cập nhật nó thì nhấn lại nút Lưu. "); // ReSharper disable once PossibleNullReferenceException course.RowVersion = databaseValues.RowVersion; } } } return View(course); }
/// <summary> /// Get: Adm/Course/Create /// </summary> /// <returns></returns> public ActionResult Create() { var emptyCourse = new Course() { Actived = true, StartTime = DateTime.Now }; return View(emptyCourse); }
public CheckRoleResult(Course course, ActionResult actionResult, bool isValid) { Course = course; ActionResult = actionResult; IsValid = isValid; }