public IActionResult Store(CourseAssessment request)
        {
            RequiredFields model = new RequiredFields();

            model.CourseAssessment = request;
            object validateFields = _validationService.ValidateRequest("Course Assessment", model);

            if (JsonConvert.SerializeObject(validateFields).Length > 2)
            {
                return(BadRequest(validateFields));
            }

            try
            {
                var response = _courseAssessmentRepository.Add(request);

                if (response == false)
                {
                    return(BadRequest(new GenericResult {
                        Response = response, Message = "Title, Assessment Type & User Group entry already exists."
                    }));
                }
                else
                {
                    return(Ok(new GenericResult {
                        Response = true, Message = "Course assessment " + request.title + " has been successfully added"
                    }));
                }
            } catch (Exception e) {
                return(BadRequest(new GenericResult {
                    Response = false, Message = "Something went wrong"
                }));
            }
        }
Ejemplo n.º 2
0
        public bool DuplicateByCourseId(long id, long newCourseId)
        {
            var courseAssessment = GetByCourseId(id);

            foreach (CourseAssessment ca in courseAssessment)
            {
                CourseAssessment caModel = new CourseAssessment();
                caModel.courseId         = newCourseId;
                caModel.title            = ca.title;
                caModel.assessmentTypeId = ca.assessmentTypeId;
                caModel.userGroupId      = ca.userGroupId;
                caModel.passingGrade     = ca.passingGrade;
                caModel.isImmediate      = ca.isImmediate;
                caModel.fromDate         = ca.fromDate;
                caModel.toDate           = ca.toDate;
                caModel.duration         = ca.duration;
                caModel.isAttempts       = ca.isAttempts;
                caModel.attempts         = ca.attempts;
                caModel.basedType        = ca.basedType;
                caModel.isShuffle        = ca.isShuffle;
                caModel.createdAt        = DateTime.Now;
                caModel.updatedAt        = DateTime.Now;
                _context.CourseAssessment.Add(caModel);
                _context.SaveChanges();

                var courseAssessmentId = caModel.id;
                foreach (CourseAssessmentItem cai in ca.CourseAssessmentItem)
                {
                    CourseAssessmentItem caiModel = new CourseAssessmentItem();
                    caiModel.courseAssessmentid = caModel.id;
                    caiModel.name                 = cai.name;
                    caiModel.duration             = cai.duration;
                    caiModel.assessmentItemTypeId = cai.assessmentItemTypeId;
                    caiModel.isShuffle            = cai.isShuffle;
                    caiModel.minLength            = cai.minLength;
                    caiModel.maxLength            = cai.maxLength;
                    caiModel.isTrue               = cai.isTrue;
                    caiModel.isFalse              = cai.isFalse;
                    caiModel.createdAt            = DateTime.Now;
                    caiModel.updatedAt            = DateTime.Now;

                    _context.CourseAssessmentItem.Add(caiModel);
                    _context.SaveChanges();

                    foreach (CourseAssessmentItemChoices caic in cai.CourseAssessmentItemChoices)
                    {
                        CourseAssessmentItemChoices caicModel = new CourseAssessmentItemChoices();
                        caicModel.courseAssessmentItemId = caiModel.id;
                        caicModel.name      = caic.name;
                        caicModel.isCorrect = caic.isCorrect;
                        _context.CourseAssessmentItemChoices.Add(caicModel);
                        _context.SaveChanges();
                    }
                }
            }
            return(true);
        }
Ejemplo n.º 3
0
        public bool Add(CourseAssessment request)
        {
            var output   = false;
            var validate = isExists(request);

            if (validate == false)
            {
                CourseAssessment courseAssessment = new CourseAssessment();
                courseAssessment.courseId = request.courseId;
                courseAssessment.title    = request.title;

                courseAssessment.userGroupId  = request.userGroupId;
                courseAssessment.passingGrade = request.passingGrade;
                courseAssessment.isImmediate  = request.isImmediate;

                //  Standard Entries: Assessment Type
                //  Defaults: 1 = Assignment; 2 = Exam; 3 = Quiz
                courseAssessment.assessmentTypeId = request.assessmentTypeId;

                if (request.isImmediate == 0)
                {
                    courseAssessment.fromDate = request.fromDate;
                    courseAssessment.toDate   = request.toDate;
                }
                courseAssessment.isAttempts = request.isAttempts;
                if (request.isAttempts == 1)
                {
                    courseAssessment.attempts = request.attempts;
                }

                //  Static Entries: Based Type
                //  Default: 0 = No Limit; 1 = Exam-Based; 2 = Question-Based
                courseAssessment.basedType = request.basedType;
                if (request.basedType != 0)
                {
                    courseAssessment.duration = request.duration;
                }
                courseAssessment.isShuffle = request.isShuffle;
                courseAssessment.createdAt = DateTime.Now;
                courseAssessment.updatedAt = DateTime.Now;
                _context.CourseAssessment.Add(courseAssessment);
                _context.SaveChanges();
                AddSection(courseAssessment.id, request);
                output = true;
            }

            return(output);
        }
        public IActionResult Update(long id, CourseAssessment request)
        {
            RequiredFields model = new RequiredFields();

            model.CourseAssessment = request;
            object validateFields = _validationService.ValidateRequest("Course Assessment", model);

            if (JsonConvert.SerializeObject(validateFields).Length > 2)
            {
                return(BadRequest(validateFields));
            }

            if (id == 0)
            {
                return(NotFound(_NotFound));
            }

            try
            {
                var response = _courseAssessmentRepository.Update(id, request);

                if (response == 0)
                {
                    return(NotFound(_NotFound));
                }
                else if (response == 1)
                {
                    return(BadRequest(new GenericResult {
                        Response = false, Message = request.title + " already exists"
                    }));
                }
                else
                {
                    return(Ok(new GenericResult {
                        Response = false, Message = request.title + " has been successfully saved"
                    }));
                }
            } catch (Exception e) {
                return(BadRequest(e));
            }
        }
Ejemplo n.º 5
0
        public int Update(long id, CourseAssessment request)
        {
            var model    = GetById(id);
            var validate = isExistsById(id, request);

            if (model == null)
            {
                return(0);
            }
            else if (validate == true)
            {
                return(1);
            }

            model.title = request.title;

            model.userGroupId  = request.userGroupId;
            model.passingGrade = request.passingGrade;
            model.isImmediate  = request.isImmediate;

            //  Standard Entries: Assessment Type
            //  Defaults: 1 = Assignment; 2 = Exam; 3 = Quiz
            model.assessmentTypeId = request.assessmentTypeId;

            if (request.isImmediate == 0)
            {
                model.fromDate = request.fromDate;
                model.toDate   = request.toDate;
            }
            else
            {
                model.fromDate = null;
                model.toDate   = null;
            }
            model.isAttempts = request.isAttempts;
            if (request.isAttempts == 1)
            {
                model.attempts = request.attempts;
            }
            else
            {
                model.attempts = 0;
            }

            //  Static Entries: Based Type
            //  Default: 0 = No Limit; 1 = Exam-Based; 2 = Question-Based
            model.basedType = request.basedType;
            if (request.basedType != 0)
            {
                model.duration = request.duration;
            }
            else
            {
                model.duration = null;
            }
            model.isShuffle = request.isShuffle;
            model.updatedAt = DateTime.Now;
            Save();

            AddSection(id, request);

            return(2);
        }
Ejemplo n.º 6
0
 private bool isExistsById(long id, CourseAssessment request)
 {
     return(_context.CourseAssessment.Where(x => x.title == request.title && x.assessmentTypeId == request.assessmentTypeId && x.userGroupId == request.userGroupId && x.id != id).Any());
 }
Ejemplo n.º 7
0
        public bool AddSection(long id, CourseAssessment request)
        {
            //  Process of adding course assessment items
            foreach (CourseAssessmentItem caiVal in request.CourseAssessmentItem)
            {
                CourseAssessmentItem cai = new CourseAssessmentItem();
                cai.courseAssessmentid = id;
                cai.name = caiVal.name;

                //  Static Entries: Based Type
                //  Default: 0 = No Limit; 1 = Exam-Based; 2 = Question-Based
                //  if based type is Question-Based
                if (request.basedType == 2)
                {
                    cai.duration = caiVal.duration;
                }

                //  if assessment item type is not Essay
                //  Defaults: 1 = Essay; 2 = Multiple Choices; 3 = True / False
                cai.assessmentItemTypeId = caiVal.assessmentItemTypeId;
                if (caiVal.assessmentItemTypeId == 2)
                {
                    cai.isShuffle = caiVal.isShuffle;
                }
                else
                {
                    cai.minLength = caiVal.minLength;
                    cai.maxLength = caiVal.maxLength;
                }

                //  Static Entries: Based Type
                //  if assessment item type is True or False
                //  Defaults: 1 = Essay; 2 = Multiple Choices; 3 = True / False
                if (caiVal.assessmentItemTypeId == 3)
                {
                    cai.isTrue  = caiVal.isTrue;
                    cai.isFalse = caiVal.isFalse;
                }
                cai.createdAt = DateTime.Now;
                cai.updatedAt = DateTime.Now;
                _context.CourseAssessmentItem.Add(cai);
                _context.SaveChanges();


                // Process assessment item choices if selected assessment item type is Multiple Choices
                if (caiVal.assessmentItemTypeId == 2)
                {
                    foreach (CourseAssessmentItemChoices caicVal in caiVal.CourseAssessmentItemChoices)
                    {
                        CourseAssessmentItemChoices caic = new CourseAssessmentItemChoices();
                        caic.courseAssessmentItemId = cai.id;
                        caic.name      = caicVal.name;
                        caic.isCorrect = caicVal.isCorrect;
                        caic.createdAt = DateTime.Now;
                        caic.updatedAt = DateTime.Now;
                        _context.CourseAssessmentItemChoices.Add(caic);
                        _context.SaveChanges();
                    }
                }
            }
            return(true);
        }