public void GivenExamViewModel_WhenCallingCreateExam_ThenShouldCreateANewExamWithClassrooms()
        {
            // arrange
            var newExam = new Exam()
            {
                CourseId       = _course.Id,
                Title          = "New Exam",
                ClassroomExams = new List <ClassroomExam>
                {
                    new ClassroomExam()
                    {
                        ClassroomId = _classroom.Id,
                        ExamId      = _exam.Id
                    }
                }
            };
            var expected = _databaseContext.Exams.Count() + 1;


            // act
            _examRepository.CreateExam(newExam);
            var result = _databaseContext.Exams.Count();

            // assert
            expected.Should().Be(result);
        }
Beispiel #2
0
        public void CreateExam(ExamBlModel exam, List <int> classroomsList)
        {
            var classrooms = new List <ClassroomBlModel>();

            foreach (var classroomId in classroomsList)
            {
                var classroom = _classroomRepository.GetClassroomById(classroomId);
                classrooms.Add(classroom.GetBlModel());
            }

            var examId = _examRepository.CreateExam(exam.GetDataModel());

            exam.Id = examId;
            var classroomExams = new List <ClassroomExamBlModel>();

            foreach (var classroom in classrooms)
            {
                var classroomExam = new ClassroomExamBlModel()
                {
                    ClassroomId = classroom.Id,
                    ExamId      = exam.Id
                };
                classroomExams.Add(classroomExam);
            }

            exam.ClassroomExams = classroomExams;
            _examRepository.EditExam(exam.GetDataModel());
        }
Beispiel #3
0
        public async Task <IActionResult> Create(string name, string description
                                                 , int duration,
                                                 List <Question> questions,
                                                 int cateid = 1)
        {
            var  userid = User.Claims.FirstOrDefault(c => c.Type == "userid").Value;
            User u      = await _user.Get(Int16.Parse(userid));

            await _exam.CreateExam(name, description, duration, questions, u, cateid);

            return(Ok(new
            {
                msg = "Added!"
            }));
        }
        public async Task <IActionResult> CreateExam(ExamViewModel examView)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }
            else
            {
                if (!examRepository.CreateExam(examView, User.FindFirstValue(ClaimTypes.NameIdentifier)))
                {
                    return(BadRequest());
                }
            }

            if (!await examRepository.SaveChangesAsync())
            {
                return(StatusCode(StatusCodes.Status500InternalServerError));
                //or return notfound();?
            }

            return(Ok());
        }
        public IActionResult CreateExam(Exam examModel)
        {
            try
            {
                Exam exam = new Exam()
                {
                    Name       = examModel.Name,
                    CreateDate = DateTime.Now,
                    Article    = examModel.Article
                };
                examRepository.CreateExam(exam);

                foreach (var que in examModel.questions)
                {
                    FormQuestion question = new FormQuestion();
                    question.ExamId       = exam.Id;
                    question.QuestionText = que.QuestionText;
                    formQuestionRepository.CreateQuestion(question);

                    foreach (var opt in que.options)
                    {
                        FormQuestionOption option = new FormQuestionOption();
                        option.FormQuestionId = question.Id;
                        option.OptionText     = opt.OptionText;
                        option.IsAnswer       = opt.IsAnswer;
                        formQuestionOptionRepository.CreateOption(option);
                    }
                }

                return(RedirectToAction("Index", "Exam"));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
Beispiel #6
0
        public JsonResult CreateExam([FromBody] ExamForCreationDto exam)
        {
            string functionName = System.Reflection.MethodBase.GetCurrentMethod().Name;

            try
            {
                //Check value enter from the form
                if (exam == null)
                {
                    Log4Net.log.Error(className + "." + functionName + " - " + Log4Net.AddErrorLog(Constants.notInformationExam));
                    return(Json(MessageResult.GetMessage(MessageType.NOT_INFORMATION_EXAM)));
                }

                if (!ModelState.IsValid)
                {
                    Log4Net.log.Error(className + "." + functionName + " - " + Log4Net.AddErrorLog(Constants.notFound));
                    return(Json(MessageResult.GetMessage(MessageType.NOT_FOUND)));
                }

                GroupOwnerEntity groupOwner = _groupOwnerRepository.GetGroupOwnerByGroupId(exam.GroupId);
                //Map data enter from the form to exam entity
                var finalExam = Mapper.Map <PPT.Database.Entities.ExamEntity>(exam);

                //This is query insert exam
                _examRepository.CreateExam(finalExam);

                if (!_examRepository.Save())
                {
                    Log4Net.log.Error(className + "." + functionName + " - " + Log4Net.AddErrorLog(Constants.badRequest));

                    return(Json(MessageResult.GetMessage(MessageType.BAD_REQUEST)));
                }
                GroupEntity groupEntity = _groupRepository.GetGroupByExam(finalExam);

                List <GroupMemberEntity> listGroupMembers = _groupMemberRepository.GetGroupMemberByGroupId(groupEntity.GroupId);
                if (listGroupMembers.Count() > 0)
                {
                    AccountExamEntity accountExamEntity1 = new AccountExamEntity();
                    accountExamEntity1.Exam      = finalExam;
                    accountExamEntity1.AccountId = groupOwner.AccountId;
                    accountExamEntity1.ExamId    = finalExam.ExamId;
                    accountExamEntity1.IsStatus  = "Empty";
                    _accountExamRepository.CreateAccountExam(accountExamEntity1);
                    _accountExamRepository.Save();
                    foreach (var item in listGroupMembers)
                    {
                        AccountExamEntity accountExamEntity = new AccountExamEntity();
                        accountExamEntity.Exam      = finalExam;
                        accountExamEntity.AccountId = item.AccountId;
                        accountExamEntity.Account   = item.Account;
                        accountExamEntity.ExamId    = finalExam.ExamId;
                        accountExamEntity.IsStatus  = "Empty";
                        _accountExamRepository.CreateAccountExam(accountExamEntity);
                        _accountExamRepository.Save();
                    }
                }
                else
                {
                    AccountExamEntity accountExamEntity = new AccountExamEntity();
                    accountExamEntity.Exam      = finalExam;
                    accountExamEntity.AccountId = groupOwner.AccountId;
                    accountExamEntity.ExamId    = finalExam.ExamId;
                    accountExamEntity.IsStatus  = "Empty";
                    _accountExamRepository.CreateAccountExam(accountExamEntity);
                    _accountExamRepository.Save();
                }
                Log4Net.log.Error(className + "." + functionName + " - " + Log4Net.AddErrorLog(Constants.createdExam));
                return(Json(MessageResult.GetMessage(MessageType.CREATED_EXAM)));
            }
            catch (Exception ex)
            {
                Log4Net.log.Error(className + "." + functionName + " - " + Log4Net.AddErrorLog(ex.Message));
                return(Json(MessageResult.ShowServerError(ex.Message)));
            }
        }