Exemple #1
0
        public IActionResult CopyCourse(long id, Courses request)
        {
            try
            {
                if (_userRepository.LogCurrentUser().canCreate == false)
                {
                    return(Unauthorized(_UnAuthorized));
                }

                if (id == 0)
                {
                    return(BadRequest(new RequestValidationModel {
                        Name = "Course", Parameter = "courseId", Message = "Please select course"
                    }));
                }
                else if (String.IsNullOrEmpty(request.title) == true)
                {
                    return(BadRequest(new RequestValidationModel {
                        Name = "New Course Title", Parameter = "title", Message = "Please enter new course title"
                    }));
                }

                var model  = _courseRepository.GetByIdCourseSimple(id);
                var model2 = _courseRepository.GetByName(request.title);
                if (model == null)
                {
                    return(NotFound(_NotFound));
                }

                if (model2 != null)
                {
                    return(BadRequest(new GenericResult {
                        Response = false, Message = "Course already exists"
                    }));
                }


                var refCode = _encryptionService.GenerateRefCode();


                _courseRepository.DuplicateCourse(id, refCode, request.title);


                var insertedCourse = _courseRepository.GetByCode(refCode);

                _courseRepository.GetByCode(refCode);


                _courseOutlineRepository.DuplicateByCourseId(id, insertedCourse.id);

                _courseOutcomeRepository.DuplicateByCourseId(id, insertedCourse.id);

                _courseAssessmentRepository.DuplicateByCourseId(id, insertedCourse.id);

                _courseCompetenciesRepository.DuplicateByCourseId(id, insertedCourse.id);

                _courseEvaluationRepository.DuplicateByCourseId(id, insertedCourse.id);


                return(Ok(new GenericResult {
                    Response = true, Message = "Course has been successfully copied"
                }));
            }
            catch (Exception e)
            {
                return(BadRequest(e));
            }
        }