Exemplo n.º 1
0
        private bool ValidateCreateCourseRequest(SaveOrUpdateCourseRequest request)
        {
            if (request == null)
            {
                return(false);
            }
            if (string.IsNullOrWhiteSpace(request.Overview))
            {
                return(false);
            }
            if (request.Edition <= 0 || request.Level <= 0 || request.AvgLearningTime <= 0)
            {
                return(false);
            }
            if (request.InstructorId == null)
            {
                return(false);
            }
            if (string.IsNullOrWhiteSpace(request.Name))
            {
                return(false);
            }

            return(true);
        }
Exemplo n.º 2
0
        private bool ValidateUpdateCourseRequest(SaveOrUpdateCourseRequest request)
        {
            var isValidContent = ValidateCreateCourseRequest(request);
            var isValidKey     = !(request.Id == Guid.Empty);

            return(isValidContent && isValidKey);
        }
Exemplo n.º 3
0
        public ServiceResult <CourseServiceResultCode> UpdateCourse(SaveOrUpdateCourseRequest request)
        {
            var isValidRequest = ValidateUpdateCourseRequest(request);

            if (!isValidRequest)
            {
                return(ArgumentErrorResult(CourseServiceResultCode.ArgumentError));
            }

            try
            {
                var course = _courseRepo.Get(request.Id);
                if (course == null)
                {
                    return(DataErrorResult(CourseServiceResultCode.DataNotExist));
                }
                UpdateDataOfCourse(course, request);
                _courseRepo.Update(course);
                _courseRepo.SaveChanges();
                return(BuildResult(true, CourseServiceResultCode.Success, resultObj: course));
            }
            catch (Exception ex)
            {
                _systemErrorsRepo.AddLog(ex);
                return(InternalErrorResult(CourseServiceResultCode.BackendException));
            }
        }
Exemplo n.º 4
0
 private void UpdateDataOfCourse(Course course, SaveOrUpdateCourseRequest request)
 {
     course.InstructorId    = request.InstructorId;
     course.Level           = request.Level;
     course.Overview        = request.Overview;
     course.Name            = request.Name;
     course.AvgLearningTime = request.AvgLearningTime;
     course.CourseCategory  = ClassifyCourseCategory(request.Categories, course);
 }
Exemplo n.º 5
0
        private Course MakeNewCourse(SaveOrUpdateCourseRequest request)
        {
            var course = new Course()
            {
                Id              = Guid.NewGuid(),
                Name            = request.Name,
                Overview        = request.Overview,
                InstructorId    = request.InstructorId,
                Edition         = request.Edition,
                Level           = request.Level,
                AvgLearningTime = request.AvgLearningTime
            };
            var courseCategories = ClassifyCourseCategory(request.Categories, course);

            course.CourseCategory = courseCategories;
            return(course);
        }
Exemplo n.º 6
0
        public ServiceResult <CourseServiceResultCode> CreateCourse(SaveOrUpdateCourseRequest request)
        {
            var isValidRequest = ValidateCreateCourseRequest(request);

            if (!isValidRequest)
            {
                return(ArgumentErrorResult(CourseServiceResultCode.ArgumentError));
            }

            try
            {
                var course = MakeNewCourse(request);
                _courseRepo.Add(course);
                _courseRepo.SaveChanges();
                return(BuildResult(true, CourseServiceResultCode.Success));
            }
            catch (Exception ex)
            {
                _systemErrorsRepo.AddLog(ex);
                return(InternalErrorResult(CourseServiceResultCode.BackendException));
            }
        }
Exemplo n.º 7
0
 public IActionResult CreateNewCourse(SaveOrUpdateCourseRequest request) => GetResult(() => _courseService.CreateCourse(request));