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();
        }
Пример #2
0
        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"));
        }
Пример #3
0
        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);
Пример #5
0
        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);
            }
        }
Пример #8
0
        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));
        }