public void AddQuestion()
        {
            var addEntityCommand       = new Mock <IAddEntityCommand>();
            var getEntityByIdQueryMock = new Mock <IGetEntityByIdQuery>();

            var questionnaire = new Questionnaire {
                Id = QuestionnaireId
            };

            getEntityByIdQueryMock.Setup(x => x.Execute <Questionnaire>(QuestionnaireId)).Returns(questionnaire);

            var section = new Section {
                Id = SectionId
            };

            getEntityByIdQueryMock.Setup(x => x.Execute <Section>(SectionId)).Returns(section);

            var request = new AddQuestionRequest();

            request.Model = new AddQuestionModel()
            {
                Text = Text, Ordinal = Ordinal, SectionId = SectionId, QuestionnaireId = QuestionnaireId
            };

            var handler = new AddQuestionRequestHandler(addEntityCommand.Object, getEntityByIdQueryMock.Object);

            CancellationTokenSource cts = new CancellationTokenSource();

            handler.Handle(request, cts.Token);

            getEntityByIdQueryMock.Verify(x => x.Execute <Questionnaire>(QuestionnaireId), Times.Once);
            addEntityCommand.Verify(x => x.Execute(It.Is <Question>(q => q.Text == Text && q.Ordinal == Ordinal && q.Section == section && q.Questionnaire == questionnaire)), Times.Once);
        }
Beispiel #2
0
        public async Task <ApiResponse> AddQuestionAsync(AddQuestionRequest request)
        {
            return(await GetResponseAsync(async() =>
            {
                var response = new ApiResponse();

                using (var db = new EFDbContext())
                {
                    // TODO: Valodation as login

                    var questionEntity = new Question
                    {
                        Name = request.Name,
                        Type = request.Type,
                        Level = request.Level,
                        TestAnswer1 = request.TestAnswer1,
                        TestAnswer2 = request.TestAnswer2,
                        TestAnswer3 = request.TestAnswer3,
                        TestAnswer4 = request.TestAnswer4,
                        RightTestAnswer = request.RightTestAnswer,
                        RightWordAnswer = request.RightWordAnswer,
                        UserId = request.UserId,
                        LastActionDate = DateTime.UtcNow
                    };

                    db.Questions.Add(questionEntity);
                    await db.SaveChangesAsync();
                }

                return response;
            }));
        }
        public int AddQuestion(AddQuestionRequest model)
        {
            var paramForQuestion = new DynamicParameters();

            paramForQuestion.Add("@QuestionTitle", model.QuestionTitle);
            paramForQuestion.Add("@QuestionContent", model.QuestionContent);
            paramForQuestion.Add("@CreatedDate", model.CreatedDate);
            paramForQuestion.Add("@UserId", model.UserId);

            var questionId = _dbConnection.Query <int>(@"insert into Question(QuestionTitle, QuestionContent, CreatedDate, UserId) 
                                                        values(@QuestionTitle,@QuestionContent,@CreatedDate,@UserId);
                                                    SELECT CAST(SCOPE_IDENTITY() as int)", paramForQuestion).Single();

            foreach (var categoryId in model.CategoriesId)
            {
                var paramForQuestionCategory = new DynamicParameters();
                paramForQuestionCategory.Add("@QuestionId", questionId);
                paramForQuestionCategory.Add("@CategoryId", categoryId);

                _dbConnection.Execute(@"insert into QuestionCategory(QuestionId,CategoryId) 
                                                values(@QuestionId,@CategoryId)", paramForQuestionCategory);
            }

            return(questionId);
        }
Beispiel #4
0
        public async Task <IActionResult> AddQuestion([FromBody] AddQuestionRequest request, string QuizId)
        {
            if (!ModelState.IsValid)
            {
                return(new BadRequestResult());
            }

            var userId = HttpContext.GetUserIdFromJwt();

            try
            {
                var quizId = new ObjectId(QuizId);
                var quiz   = await _quizService.GetQuiz(quizId);

                if (quiz == null)
                {
                    return(StatusCode(StatusCodes.Status410Gone, new { message = "Error: quiz does not exist" }));
                }

                if (quiz.OwnerId == userId)
                {
                    var result = await _quizService.AddQuestion(quizId, request.Question, request.Answer);

                    return(Ok(new { quiz = result }));
                }
                else
                {
                    return(Unauthorized());
                }
            }
            catch
            {
                return(StatusCode(StatusCodes.Status500InternalServerError));
            }
        }
Beispiel #5
0
        public void AddQuestion(AddQuestionRequest request)
        {
            GeneralHelpers.ThrowIfNull(request.Question);

            var initialAnswerDescriptions = new List <string>
            {
                request.InitialAnswerOne,
                request.InitialAnswerTwo,
                request.InitialAnswerThree
            };

            GeneralHelpers.ThrowIfAnyAreNull(initialAnswerDescriptions);

            var initialAnswers = initialAnswerDescriptions
                                 .Select(ad => new Answer
            {
                Description = ad
            }).ToList();

            if (request.OrderPosition == -1) // question is last
            {
                AddQuestionToLastPositionOfQuiz(request.Question, initialAnswers, request.QuizId);
            }
            else
            {
                AddQuestionToSpecificPositionOfQuiz(request.Question, initialAnswers, request.QuizId,
                                                    request.OrderPosition);
            }
        }
 public Task AddAsync(AddQuestionRequest request)
 {
     return(transactionService.CommitAsync(new[] { TransactionContextScope.Main }, async() =>
     {
         var question = mapper.Map <Question>(request);
         await AddAsync(question, request.Answers);
         await examinationsService.UpdateModificationTimeAsync(question.ExaminationId);
     }));
 }
        public IActionResult AddQuestion(AddQuestionRequest model)
        {
            string tokenString   = Request.Headers["Authorization"];
            int    currentUserId = JwtAthentication.GetCurrentUserId(tokenString);

            model.UserId = currentUserId;

            var questionId = _questionService.AddQuestion(model);

            return(Ok(new { questionId = questionId }));
        }
        public Survey PostQuestion(int id, [FromBody] AddQuestionRequest question)
        {
            var existingQuestion = _questionsRepository.Get(question.QuestionId);
            var existingSurvey   = _surveysRepository.Get(id);

            existingSurvey.AddQuestion(existingQuestion);

            _surveysRepository.Update(existingSurvey);

            return(existingSurvey);
        }
        public QuestionResponse AddQuestion([FromBody] AddQuestionRequest request)
        {
            var userId = User.Claims
                         .Where <Claim>(c => c.Type == ClaimTypes.NameIdentifier)
                         .Select(s => s.Value).First();

            if (userId == null)
            {
                return(new QuestionResponse {
                    Data = null, Message = "اطلاعات کاربری یافت نشد"
                });
            }

            var question = new Question
            {
                Title       = request.Title,
                Description = request.Description,
                UserId      = userId,
                CreateTime  = DateTime.Now,
            };

            try
            {
                context.Questions.Add(question);
                context.SaveChanges();
            }
            catch (Exception e)
            {
                return(new QuestionResponse {
                    Data = null, Message = "خطایی در ثبت سوال بوجد امد"
                });
            }

            return(new QuestionResponse {
                Data = null, Message = "سوال با موفقیت ثبت شد"
            });
        }
Beispiel #10
0
 public ActionResult AddQuestion([FromForm] AddQuestionRequest request)
 {
     questionService.AddQuestion(request);
     return(Ok());
 }
Beispiel #11
0
 public int AddQuestion(AddQuestionRequest model)
 {
     return(_questionRepository.AddQuestion(model));
 }
 public async Task <ApiResponse> AddQuestionAsync([FromBody] AddQuestionRequest request) =>
 await _questionsService.AddQuestionAsync(request);
 public Question Map(AddQuestionRequest request)
 {
     throw new System.NotImplementedException();
 }
 public async Task AddQuestion([FromBody] AddQuestionRequest question)
 => await questionsService.AddAsync(question);
Beispiel #15
0
 public BaseResult AddQuestion(AddQuestionRequest request)
 {
     return(_retroLogic.AddQuestion(request.Question, request.Order));
 }