public async void ShouldThrowValidationExceptionOnModifyWhenUpdatedDateInvalidAndLogItAsync() { // given DateTimeOffset dateTime = GetRandomDateTime(); SemesterCourse randomSemesterCourse = CreateRandomSemesterCourse(dateTime); SemesterCourse inputSemesterCourse = randomSemesterCourse; inputSemesterCourse.UpdatedDate = default; var invalidSemesterCourseInputException = new InvalidSemesterCourseInputException( parameterName: nameof(SemesterCourse.UpdatedDate), parameterValue: inputSemesterCourse.UpdatedDate); var expectedSemesterCourseValidationException = new SemesterCourseValidationException(invalidSemesterCourseInputException); // when ValueTask <SemesterCourse> modifySemesterCourseTask = this.semesterCourseService.ModifySemesterCourseAsync(inputSemesterCourse); // then await Assert.ThrowsAsync <SemesterCourseValidationException>(() => modifySemesterCourseTask.AsTask()); this.loggingBrokerMock.Verify(broker => broker.LogError(It.Is(SameExceptionAs(expectedSemesterCourseValidationException))), Times.Once); this.storageBrokerMock.Verify(broker => broker.SelectSemesterCourseByIdAsync(It.IsAny <Guid>()), Times.Never); this.dateTimeBrokerMock.VerifyNoOtherCalls(); this.loggingBrokerMock.VerifyNoOtherCalls(); this.storageBrokerMock.VerifyNoOtherCalls(); }
public ActionResult Edit([Bind(Include = "SemesterCourseID,SemesterID,SemesterCourseNumber,SemesterCourseName,CourseType")] SemesterCourse semesterCourse, int GradeID, int MajorID) { if (ModelState.IsValid) { var gradeMajor = db.GradeMajors.SingleOrDefault(x => x.GradeID == GradeID && x.MajorID == MajorID); if (gradeMajor == null || gradeMajor.GradeMajorIsValidate == false) { return(HttpNotFound()); } semesterCourse.GradeMajorID = gradeMajor.GradeMajorID; semesterCourse.AuthorName = User.Identity.GetUserName(); semesterCourse.PostTime = DateTime.Now; db.Entry(semesterCourse).State = EntityState.Modified; db.SaveChanges(); if (Request.UrlReferrer != null) { var returnUrl = Request.UrlReferrer.ToString(); return(new RedirectResult(returnUrl)); //由于使用的是隐藏表单提交而非Ajax无刷新异步提交。所以使用jquery将表单提交到控制器后,返回Request.UrlReferrer返回到上一个页面将是数据库更新后的状态。 } return(RedirectToAction("Index")); } return(RedirectToAction("Index")); }
public void AddFakeStudent() { _dbContext.Database.EnsureDeleted(); _dbContext.Database.EnsureCreated(); Teacher teacherAsma = new Teacher() { Name = "Asma Naveed" }; Teacher teacherAqeel = new Teacher() { Name = "Muhammad Aqeel" }; Semester sem6 = new Semester() { Season = "F", Title = "Semester 6", Year = 2020 }; Course hciCourse = new Course() { Code = "001", Name = "Human Computer Interaction" }; Course svvCourse = new Course() { Code = "002", Name = "Software V&V" }; Exam exam = new Exam() { Name = "Assignment#1", Date = DateTime.Now, TotalMarks = 10 }; Exam exam2 = new Exam() { Name = "Assignment#1", Date = DateTime.Now, TotalMarks = 10 }; var studentExams = new List <StudentExam>() { new StudentExam() { Exam = exam, ObtainedMarks = 8, }, new StudentExam() { Exam = exam, ObtainedMarks = 9, }, new StudentExam() { Exam = exam, ObtainedMarks = 1, }, new StudentExam() { Exam = exam, ObtainedMarks = 3, }, }; SemesterCourse hciSemesterCourse = new SemesterCourse() { Teacher = teacherAsma, Course = hciCourse, StudentExams = studentExams, Attendances = GetRandomAttendances(200) }; var studentExams2 = new List <StudentExam>(); studentExams2.Add(new StudentExam() { Exam = exam2, ObtainedMarks = 1 }); SemesterCourse svvSemesterCourse = new SemesterCourse() { Teacher = teacherAqeel, Course = svvCourse, StudentExams = studentExams2, Attendances = GetRandomAttendances(200) }; var studentSemester = new StudentSemester() { Semester = sem6, Courses = new List <SemesterCourse>() { hciSemesterCourse, svvSemesterCourse, }, Description = "Fall 2020", Title = "Semester #6", Gpa = 3.8 }; var studentSemester2 = new StudentSemester() { Semester = sem6, Courses = new List <SemesterCourse>(), Description = "Fall 2019", Title = "Semester #5", Gpa = 3.7 }; var studentSemester3 = new StudentSemester() { Semester = sem6, Courses = new List <SemesterCourse>(), Description = "Fall 2019", Title = "Semester #4", Gpa = 3.6 }; Student newStudent = new Student { Email = "*****@*****.**", Name = "Usama Bin Tariq", RollNo = "053", Password = "******", Year = 17, Program = "BCSE", Season = "F", Semesters = new List <StudentSemester>() { studentSemester, studentSemester2, studentSemester3 } }; _dbContext.Students.Add(newStudent); _dbContext.SaveChanges(); newStudent.CurrentSemester = studentSemester; _dbContext.SaveChanges(); }
public async ValueTask <SemesterCourse> PutSemesterCourseAsync(SemesterCourse semesterCourse) => await this.apiFactoryClient.PutContentAsync(SemesterCoursesRelativeUrl, semesterCourse);
public PartialViewResult GetASemesterCourse(int?id) { SemesterCourseViewModel _semesterCourseViewModel = new SemesterCourseViewModel(); //获取当前用户所负责征订的部门;2017.12.30 var exitUsers = UserManager.Users.Include(x => x.Departments).ToList(); //获取系统所有用户 及管理的部门。 var currentUser = exitUsers.SingleOrDefault(x => x.Id == User.Identity.GetUserId()); //获取登录用户。 var currentDepartments = currentUser.Departments.ToList(); //获取登录用户所管理的部门。 if (id == null) { var _exitSemesterBlank = from sem in db.Semesters //来自学期表 where sem.IsCurrentSemester == true select sem; _semesterCourseViewModel.SemesterList = new SelectList(_exitSemesterBlank.Distinct().OrderBy(x => x.SemesterID), "SemesterID", "SemesterName"); var _exitGradeBlank = from grad in db.GradeMajors //年级和专业来自gradeMajor; where grad.GradeMajorIsValidate == true select grad.Grade; _semesterCourseViewModel.GradesList = new SelectList(_exitGradeBlank.Distinct().OrderBy(g => g.GradeID), "GradeID", "GradeName"); var _exitDepartmentBlank = from grad in db.GradeMajors.Include(x => x.Major.Department) select grad.Major.Department; var _returnDepartmentBlank = _exitDepartmentBlank.Distinct().OrderBy(x => x.DepartmentID).ToList(); _semesterCourseViewModel.DepartmentList = new SelectList(_returnDepartmentBlank.Where(x => currentDepartments.Contains(x)), "DepartmentID", "DepartmentName"); var _exitMajorBlank = from maj in db.GradeMajors.Include(x => x.Major) select maj.Major; var _returnMajorBlank = _exitMajorBlank.Distinct().OrderBy(x => x.DepartmentID).ThenBy(x => x.MajorID).ToList(); _semesterCourseViewModel.MajorsList = new SelectList(_returnMajorBlank.Where(x => currentDepartments.Contains(x.Department)), "MajorID", "MajorName"); return(PartialView("_Modal.FormContent", _semesterCourseViewModel)); } SemesterCourse _semesterCourse = db.SemesterCourses.Find(id); _semesterCourseViewModel.SemesterCourseID = _semesterCourse.SemesterCourseID; var _exitSemester = from sem in db.Semesters //来自学期表 where sem.IsCurrentSemester == true select sem; _semesterCourseViewModel.SemesterList = new SelectList(_exitSemester.Distinct().OrderBy(x => x.SemesterID), "SemesterID", "SemesterName", _semesterCourse.SemesterID); var _exitGrade = from grad in db.GradeMajors //年级和专业来自gradeMajor; where grad.GradeMajorIsValidate == true select grad.Grade; _semesterCourseViewModel.GradesList = new SelectList(_exitGrade.Distinct().OrderBy(g => g.GradeID), "GradeID", "GradeName", _semesterCourse.GradeMajor.GradeID); var _exitDepartment = from grad in db.GradeMajors.Include(x => x.Major.Department) select grad.Major.Department; var _returnDepartment = _exitDepartment.Distinct().OrderBy(x => x.DepartmentID).ToList(); _semesterCourseViewModel.DepartmentList = new SelectList(_returnDepartment.Where(x => currentDepartments.Contains(x)), "DepartmentID", "DepartmentName", _semesterCourse.GradeMajor.Major.DepartmentID); var _exitMajor = from maj in db.GradeMajors.Include(x => x.Major) where (maj.GradeMajorIsValidate == true) select maj.Major; var _returnMajor = _exitMajor.Distinct().OrderBy(x => x.DepartmentID).ThenBy(x => x.MajorID).ToList(); _semesterCourseViewModel.MajorsList = new SelectList(_returnMajor.Where(x => currentDepartments.Contains(x.Department)), "MajorID", "MajorName", _semesterCourse.GradeMajor.MajorID); _semesterCourseViewModel.SemesterCourseNumber = _semesterCourse.SemesterCourseNumber; _semesterCourseViewModel.SemesterCourseName = _semesterCourse.SemesterCourseName; _semesterCourseViewModel.CourseType = _semesterCourse.CourseType; return(PartialView("_Modal.FormContent", _semesterCourseViewModel)); }
public ActionResult Semesters(List<int> courses, int semester) { // Retreive the Courses selected List<Course> SelectedCourses = new List<Course> (); if ( courses != null ) { var list_of_courses = db.Courses.ToList(); SelectedCourses = list_of_courses.Where(c => courses.Contains(c.course_id)).ToList(); // Retreive the Semester That Selected Semester SelectedSemester = new Semester(); var list_of_Semesters = (from s in db.Semesters where s.semester_id == semester select s).ToList(); SelectedSemester = list_of_Semesters.First(); ViewBag.SelectedSemester = SelectedSemester; foreach (var course in SelectedCourses) { SemesterCourse sc = new SemesterCourse(); sc.course_id = course.course_id; sc.semester_id = semester; db.SemesterCourses.Add(sc); } db.SaveChanges(); } return View(SelectedCourses); }
private static void ValidateAgainstStorageSemesterCourseOnModify(SemesterCourse inputSemesterCourse, SemesterCourse storageSemesterCourse) { switch (inputSemesterCourse) { case { } when inputSemesterCourse.CreatedDate != storageSemesterCourse.CreatedDate: throw new InvalidSemesterCourseException( parameterName: nameof(SemesterCourse.CreatedDate), parameterValue: inputSemesterCourse.CreatedDate); case { } when inputSemesterCourse.CreatedBy != storageSemesterCourse.CreatedBy: throw new InvalidSemesterCourseException( parameterName: nameof(SemesterCourse.CreatedBy), parameterValue: inputSemesterCourse.CreatedBy); case { } when inputSemesterCourse.UpdatedDate == storageSemesterCourse.UpdatedDate: throw new InvalidSemesterCourseException( parameterName: nameof(SemesterCourse.UpdatedDate), parameterValue: inputSemesterCourse.UpdatedDate); } }
public PartialViewResult GetASemesterCourse(int?id) { SemesterCourseViewModel _semesterCourseViewModel = new SemesterCourseViewModel(); if (id == null) { var _exitSemesterBlank = from sem in db.Semesters //来自学期表 where sem.IsCurrentSemester == true select sem; _semesterCourseViewModel.SemesterList = new SelectList(_exitSemesterBlank.Distinct().OrderBy(x => x.SemesterID), "SemesterID", "SemesterName"); var _exitGradeBlank = from grad in db.GradeMajors //年级和专业来自gradeMajor; where grad.GradeMajorIsValidate == true select grad.Grade; _semesterCourseViewModel.GradesList = new SelectList(_exitGradeBlank.Distinct().OrderBy(g => g.GradeID), "GradeID", "GradeName"); var _exitDepartmentBlank = from grad in db.GradeMajors.Include(x => x.Major.Department) select grad.Major.Department; _semesterCourseViewModel.DepartmentList = new SelectList(_exitDepartmentBlank.Distinct().OrderBy(x => x.DepartmentID), "DepartmentID", "DepartmentName"); var _exitMajorBlank = from maj in db.GradeMajors.Include(x => x.Major) select maj.Major; _semesterCourseViewModel.MajorsList = new SelectList(_exitMajorBlank.Distinct().OrderBy(x => x.DepartmentID).ThenBy(x => x.MajorID), "MajorID", "MajorName"); return(PartialView("_Modal.FormContent", _semesterCourseViewModel)); } SemesterCourse _semesterCourse = db.SemesterCourses.Find(id); _semesterCourseViewModel.SemesterCourseID = _semesterCourse.SemesterCourseID; var _exitSemester = from sem in db.Semesters //来自学期表 where sem.IsCurrentSemester == true select sem; _semesterCourseViewModel.SemesterList = new SelectList(_exitSemester.Distinct().OrderBy(x => x.SemesterID), "SemesterID", "SemesterName", _semesterCourse.SemesterID); var _exitGrade = from grad in db.GradeMajors //年级和专业来自gradeMajor; where grad.GradeMajorIsValidate == true select grad.Grade; _semesterCourseViewModel.GradesList = new SelectList(_exitGrade.Distinct().OrderBy(g => g.GradeID), "GradeID", "GradeName", _semesterCourse.GradeMajor.GradeID); var _exitDepartment = from grad in db.GradeMajors.Include(x => x.Major.Department) select grad.Major.Department; _semesterCourseViewModel.DepartmentList = new SelectList(_exitDepartment.Distinct().OrderBy(x => x.DepartmentID), "DepartmentID", "DepartmentName", _semesterCourse.GradeMajor.Major.DepartmentID); var _exitMajor = from maj in db.GradeMajors.Include(x => x.Major) where (maj.GradeMajorIsValidate == true) select maj.Major; _semesterCourseViewModel.MajorsList = new SelectList(_exitMajor.Distinct().OrderBy(x => x.MajorID), "MajorID", "MajorName", _semesterCourse.GradeMajor.MajorID); _semesterCourseViewModel.SemesterCourseNumber = _semesterCourse.SemesterCourseNumber; _semesterCourseViewModel.SemesterCourseName = _semesterCourse.SemesterCourseName; _semesterCourseViewModel.CourseType = _semesterCourse.CourseType; return(PartialView("_Modal.FormContent", _semesterCourseViewModel)); }