public IActionResult ShowResults(int surveyId) { StatisticsModel model = new StatisticsModel(); model.Survey = surveyService.GetSurvey(surveyId); model.NumberOfResponses = statisticsService.GetNumerOfResponsesBySurvey(surveyId); model.Questions = questionService.GetQuestionsForSurvey(surveyId); model.QuestionStatistics = new List <QuestionStatistics>(); foreach (var question in model.Questions) { QuestionStatistics questionStatistics = new QuestionStatistics(); questionStatistics.Question = question; questionStatistics.QuestionOptionModels = new List <QuestionOptionModel>(); question.Options = questionService.GetOptionsForQuestion(question.QuestionId); foreach (var option in question.Options) { QuestionOptionModel questionOptionModel = new QuestionOptionModel(); questionOptionModel.QuestionOption = option; questionOptionModel.countQuestionOptionSelected = questionService.GetCountQuestionOptionSelectById(option.QuestionOptionId); questionStatistics.QuestionOptionModels.Add(questionOptionModel); } model.QuestionStatistics.Add(questionStatistics); } return(View("Views/Statistics/Results.cshtml", model)); }
internal void CompareQuestionStatistics(QuestionStatistics expected, QuestionStatistics actual) { Assert.Equal(expected.AnswersDistribution, actual.AnswersDistribution); Assert.Equal(expected.RightAnswerIndex, actual.RightAnswerIndex); Assert.Equal(expected.RightAnswersAmount, actual.RightAnswersAmount); Assert.Equal(expected.WrongAnswersAmount, actual.WrongAnswersAmount); }
public void GetPercentageOfCorrectlyAnsweredTest(int questionId) { QuestionStatistics statistic = new QuestionStatistics(questionId); double actual = statistic.GetPercentageOfCorrectlyAnswered(questionId); QuestionExpectedMock mock = new QuestionExpectedMock(); Assert.AreEqual(mock.GetPercentageOfCorrectlyAnswered(questionId), actual); }
public void GetPercentageOfPeopleChoosingAnswerTest(int questionId) { QuestionStatistics statistic = new QuestionStatistics(questionId); Dictionary <int, double> actual = statistic.GetPercentageOfPeopleChoosingAnswer(questionId); QuestionExpectedMock mock = new QuestionExpectedMock(); Assert.AreEqual(mock.GetPercentageOfPeopleChoosingAnswer(questionId), actual); }
public void CountNumberOfAnswersInAttemptByQuestionIdTest(int questionId) { QuestionStatistics statistic = new QuestionStatistics(questionId); Dictionary <int, int> actual = statistic.CountNumberOfAnswersInAttemptByQuestionId(questionId); QuestionExpectedMock mock = new QuestionExpectedMock(); Assert.AreEqual(mock.CountNumberOfAnswersInAttemptByQuestionId(questionId), actual); }
public ActionResult <QuestionOutputModel> GetQuestionById([FromBody] int questionId) { Mapper mapper = new Mapper(); AuthorDataAccess question = new AuthorDataAccess(); QuestionOutputModel model = mapper.ConvertQuestionDTOToQuestionOutputModel(question.GetQuestionById(questionId)); QuestionStatistics statistics = new QuestionStatistics(questionId); model.PercentageOfCorrectlyAnswered = statistics.GetPercentageOfCorrectlyAnswered(questionId); return(Ok(model)); }
public ActionResult <TestOutputModel> GetTestAllInfoById(int testId) { Mapper mapper = new Mapper(); AuthorDataAccess tests = new AuthorDataAccess(); var test = tests.GetTestById(testId); TestStatistics testStatistics = new TestStatistics(testId); if (test == null) { return(BadRequest("Теста не существует")); } TestOutputModel model = mapper.ConvertTestDTOToTestOutputModel(tests.GetTestById(testId)); PassedFailedModel pfs = testStatistics.GetPassedFailedStats(testId); model.Questions = mapper.ConvertQuestionDTOToQuestionModelList(tests.GetQuestionsByTestID(testId)); model.Tags = mapper.ConvertTagDTOToTagModelList(tests.GetTagsInTest(testId)); model.AverageResult = testStatistics.GetAverageResults(testId); model.Passed = pfs.Passed; model.Failed = pfs.Failed; model.SuccessRate = pfs.SuccessRate; foreach (QuestionOutputModel qModel in model.Questions) { qModel.Answers = mapper.ConvertAnswerDTOToAnswerModelList(tests.GetAnswerByQuestionId(qModel.ID)); QuestionStatistics statistics = new QuestionStatistics(qModel.ID); qModel.PercentageOfCorrectlyAnswered = statistics.GetPercentageOfCorrectlyAnswered(qModel.ID); Dictionary <int, double> answersPercent = new Dictionary <int, double>(); answersPercent = statistics.GetPercentageOfPeopleChoosingAnswer(qModel.ID); foreach (var answer in qModel.Answers) { foreach (var i in answersPercent) { if (answer.ID == i.Key) { answer.PercentageOfPeopleChoosingAnswer = i.Value; } else { answer.PercentageOfPeopleChoosingAnswer = 0; } } } } return(Ok(model)); }
public ActionResult <List <AnswerOutputModel> > GetAnswersByQuestionId(int questionId) { Mapper mapper = new Mapper(); AuthorDataAccess answers = new AuthorDataAccess(); List <AnswerOutputModel> listOfModels = mapper.ConvertAnswerDTOToAnswerModelList(answers.GetAnswerByQuestionId(questionId)); QuestionStatistics statistics = new QuestionStatistics(questionId); Dictionary <int, double> answersPercent = statistics.GetPercentageOfPeopleChoosingAnswer(questionId); foreach (var model in listOfModels) { foreach (var i in answersPercent) { if (model.ID == i.Key) { model.PercentageOfPeopleChoosingAnswer = i.Value; } else { model.PercentageOfPeopleChoosingAnswer = 0; } } } return(Ok(listOfModels)); }