コード例 #1
0
        private void ValidateCourseInfo(AdministratorCourseServiceModel course)
        {
            StringBuilder exceptionMessages = new StringBuilder();

            bool isValid = true;

            using (var data = new StudentSystemDbContext())
            {
                bool isCourseExists = data.Courses
                                      .Any(x => x.Name == course.Name);

                if (isCourseExists)
                {
                    exceptionMessages.AppendLine(string.Format(COURSE_EXISTS_EXCEPTION_MESSAGE, course.Name));
                    isValid = false;
                }
            }

            if (course.Name == null || course.Name.Length < COURSE_NAME_MIN_LENGTH || course.Name.Length > COURSE_NAME_MAX_LENGTH)
            {
                exceptionMessages.AppendLine(INVALID_COURSE_NAME_LENGTH_EXCEPTION_MESSAGE);
                isValid = false;
            }

            bool isValidStartDate = DateTime.TryParseExact(course.StartDate,
                                                           STRING_DATE_FORMAT, CultureInfo.InvariantCulture, DateTimeStyles.None, out _);

            if (!isValidStartDate)
            {
                exceptionMessages.AppendLine(string.Format(INVALID_START_DATE_EXCEPTION_MESSAGE, course.StartDate));
                isValid = false;
            }

            bool isValidEndDate = DateTime.TryParseExact(course.EndDate,
                                                         STRING_DATE_FORMAT, CultureInfo.InvariantCulture, DateTimeStyles.None, out _);

            if (!isValidEndDate)
            {
                exceptionMessages.AppendLine(string.Format(INVALID_END_DATE_EXCEPTION_MESSAGE, course.EndDate));
                isValid = false;
            }

            bool isValidExamDate = DateTime.TryParseExact(course.ExamDate,
                                                          STRING_DATE_FORMAT, CultureInfo.InvariantCulture, DateTimeStyles.None, out _);

            if (!isValidExamDate)
            {
                exceptionMessages.AppendLine(string.Format(INVALID_EXAM_DATE_EXCEPTION_MESSAGE, course.ExamDate));
                isValid = false;
            }

            if (!isValid)
            {
                throw new InvalidOperationException(exceptionMessages.ToString());
            }
        }
コード例 #2
0
        public void SaveCourse(AdministratorCourseServiceModel inputCourseInfo)
        {
            ValidateCourseInfo(inputCourseInfo);

            using (var data = new StudentSystemDbContext())
            {
                Course course = new Course()
                {
                    Name      = inputCourseInfo.Name,
                    StartDate = DateTime.ParseExact(inputCourseInfo.StartDate, STRING_DATE_FORMAT, CultureInfo.InvariantCulture),
                    EndDate   = DateTime.ParseExact(inputCourseInfo.EndDate, STRING_DATE_FORMAT, CultureInfo.InvariantCulture),
                    ExamDate  = DateTime.ParseExact(inputCourseInfo.ExamDate, STRING_DATE_FORMAT, CultureInfo.InvariantCulture),
                };

                data.Courses.Add(course);
                data.SaveChanges();
            }
        }
コード例 #3
0
        private void SaveChanges()
        {
            var course = new AdministratorCourseServiceModel()
            {
                Name      = this.CourseName,
                StartDate = this.StartDate,
                EndDate   = this.EndDate,
                ExamDate  = this.ExamDate,
            };

            try
            {
                this.administratorCoursesService.SaveCourse(course);
                this.ConfirmationMessages = string.Format(SUCCESSFULLY_ADDED_COURSE, this.CourseName);
                ResetViewFields();
            }
            catch (InvalidOperationException ioex)
            {
                this.ExceptionMessage     = ioex.Message;
                this.ConfirmationMessages = String.Empty;
            }
        }