Beispiel #1
0
        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);
        }
Beispiel #2
0
 /// <summary>
 /// Get: Adm/Course/Create
 /// </summary>
 /// <returns></returns>
 public ActionResult Create()
 {
     var emptyCourse = new Course() { Actived = true, StartTime = DateTime.Now };
     return View(emptyCourse);
 }
Beispiel #3
0
 public CheckRoleResult(Course course, ActionResult actionResult, bool isValid)
 {
     Course = course;
     ActionResult = actionResult;
     IsValid = isValid;
 }