private AnswerTest MapTo(QuestionTest questionTest)
 {
     return new AnswerTest
     {
         Text = questionTest.Text,
         SuggestedAnswers = questionTest.SuggestedAnswers.ToList(),
     };
 }
 private AnswerTest MapTo(QuestionTest questionTest)
 {
     return(new AnswerTest
     {
         Text = questionTest.Text,
         SuggestedAnswers = questionTest.SuggestedAnswers.ToList(),
     });
 }
Exemplo n.º 3
0
        ///-------------------------------------------------------------------------------------------------
        /// <summary>   Adds parsed questions IDs to a Test. </summary>
        ///
        /// <param name="test">                 The test. </param>
        /// <param name="questionCheckboxes">   The question IDs in string form to be parsed first. </param>
        ///-------------------------------------------------------------------------------------------------
        public void AddQuestionsToTest(Test test, string[] questionCheckboxes)
        {
            var questionList = GetAndParseQuestions(questionCheckboxes);

            for (int i = 0; i < questionList.Count(); i++)
            {
                QuestionTest questionTest = new QuestionTest()
                {
                    Test       = test,
                    QuestionID = questionList[i].ID
                };

                db.QuestionTests.Add(questionTest);
            }
        }
Exemplo n.º 4
0
        public async Task <ActionResult <VtScore> > ValidExamination([FromBody] QuestionTest value)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var examination   = value.Examination;
            var past          = 0;
            var notPast       = 0;
            var totalQuestion = 0;

            examination.ForEach(item =>
            {
                totalQuestion += 1;
                var answer     = ctx.VtQuestion.FirstOrDefault(p => p.Id == item.QuestionId && p.Answer == item.Answer);
                if (answer != null)
                {
                    past += 1;
                }
                else
                {
                    notPast += 1;
                }
            });

            var score = new VtScore
            {
                Past          = past,
                NotPast       = notPast,
                TotalQuestion = totalQuestion,
                UserId        = examination.First().UserId,
                UserName      = examination.First().UserName,
                CareerType    = examination.First().CareerType
            };

            ctx.VtScore.Add(score);
            await ctx.SaveChangesAsync();

            var _userId = 1;

            return(CreatedAtAction(nameof(GetScoreByCon), new { userId = _userId }, score));
        }
Exemplo n.º 5
0
        public GetQuestionResponse GetQuestion(GetQuestionRequest request)
        {
            GetQuestionResponse response = new GetQuestionResponse();

            AuthToken authToken = null;

            try
            {
                Common.Helpers.ValidationHelper.ValidateRequiredField(request.AuthToken, "Auth Token");

                if (!UserController.ValidateSession(request.AuthToken, out authToken))
                {
                    throw new AuthenticationException("Authentication failed.");
                }

                DbContext context = DataController.CreateDbContext();

                E::Question question = context.Questions
                                       .Where(q => q.ID == request.QuestionID)
                                       .FirstOrDefault();

                response.QuestionBody = DataController.DownloadBlob(question.QuestionBody.ToString());

                response.Name            = question.Name;
                response.LastUpdatedBy   = question.LastUpdatedBy;
                response.LastUpdatedDate = question.LastUpdatedDate.ToShortDateString();
                response.CreatedBy       = question.CreatedBy;
                response.CreatedDate     = question.CreatedDate.ToShortDateString();

                response.CanEdit = !context.InterviewQuestions
                                   .Where(q => q.QuestionID == request.QuestionID)
                                   .Where(q => q.Interview.StartedDate.HasValue)
                                   .Any();

                response.IsCodedTest = question.QuestionTypeID == (short)QuestionType.Coded;

                if (!response.IsCodedTest)
                {
                    var tests = TestsController.FromJson(DataController.DownloadBlob(question.Tests.Value.ToString()));

                    IList <QuestionTest> questionTests = new List <QuestionTest>();

                    foreach (var test in tests.AsEnumerable())
                    {
                        QuestionTest questionTest = new QuestionTest();

                        questionTest.ID             = test.ID;
                        questionTest.Name           = test.Name;
                        questionTest.Input          = test.Input;
                        questionTest.ExpectedOutput = test.ExpectedOutput;

                        questionTests.Add(questionTest);
                    }

                    response.Tests = questionTests.ToArray();
                }
                else
                {
                    response.Tests = new QuestionTest[0];
                }
            }
            catch (AuthenticationException ex)
            {
                throw new WebFaultException <string>(ex.Message, System.Net.HttpStatusCode.BadRequest);
            }
            catch (Common.Exceptions.ValidationException ex)
            {
                throw new WebFaultException <string>(ex.Message, System.Net.HttpStatusCode.BadRequest);
            }
            catch (Exception ex)
            {
                ExceptionHelper.Log(ex, authToken == null ? null : authToken.Username);
                throw new WebFaultException <string>("An unknown error has occurred.", System.Net.HttpStatusCode.InternalServerError);
            }

            return(response);
        }