public void GetProductivityZoneQuizAttemptsTest() { var response = new ProductivityZoneQuizAttempts { attemptcount = 1 }; var quizAttemptResponse = new List <BsonDocument> { new BsonDocument { } }; var request = new QuizDetails(); var quizResponse = new List <ProductivityZoneQuiz> { new ProductivityZoneQuiz { id = 1 } }; _mokproductivityZoneQuizAdapter.Setup(a => a.GetLatestAttemptByUser(It.IsAny <string>())).Returns(response); _mokquizAttempt.Setup(a => a.GetRecords(It.IsAny <string>(), It.IsAny <FilterDefinition <BsonDocument> >())).Returns(quizAttemptResponse); _mokproductivityZoneQuizAdapter.Setup(a => a.GetProductivityZoneQuizzes()).Returns(quizResponse); _reportsAdpater = new ReportsAdapter(_mokquizAttempt.Object, _settings.Object, _mokcuriousQuizAdapter.Object, _mokgrowthMindsetQuizAdapter.Object, _mokmakingTimeForMeQuizAdapter.Object, _mokstoryTellingForImpactAdapter.Object, _mokblindSpotAdapter.Object, _moklearningMythAdapter.Object, _mokcontinuousLearningAdapter.Object, _mokculturalObservationAdapter.Object, _mokproductivityZoneQuizAdapter.Object, _mokreflectionToolAdapter.Object); var result = _reportsAdpater.GetProductivityZoneQuizAttempts("", 2, request); Assert.IsInstanceOf <List <QuizAttempts> >(result); }
public void GetBlindSpotQuizAttemptsTest() { var response = new BlindSpotQuizAttempts { attemptcount = 1 }; var quizAttemptResponse = new BlindSpotQuizAttempts(); var request = new QuizDetails(); var quizResponse = new List <BlindSpotCoWorkerReply>(); _mokblindSpotAdapter.Setup(a => a.GetLatestAttemptByUser(It.IsAny <string>())).Returns(response); _mokblindSpotAdapter.Setup(a => a.GetBlindSpotAttemptResponse(It.IsAny <int>(), It.IsAny <string>())).Returns(quizAttemptResponse); _mokblindSpotAdapter.Setup(a => a.GetCoWorkerResponsesByAttempt(It.IsAny <long>())).Returns(quizResponse); _reportsAdpater = new ReportsAdapter(_mokquizAttempt.Object, _settings.Object, _mokcuriousQuizAdapter.Object, _mokgrowthMindsetQuizAdapter.Object, _mokmakingTimeForMeQuizAdapter.Object, _mokstoryTellingForImpactAdapter.Object, _mokblindSpotAdapter.Object, _moklearningMythAdapter.Object, _mokcontinuousLearningAdapter.Object, _mokculturalObservationAdapter.Object, _mokproductivityZoneQuizAdapter.Object, _mokreflectionToolAdapter.Object); var result = _reportsAdpater.GetBlindSpotQuizAttempts("", 1, request); Assert.IsInstanceOf <List <QuizAttempts> >(result); }
public IActionResult GetCompletedQuizzesForTrainee([FromBody] TraineeGetQuizzes userAndGroupIDDTO) { var queryResult = -1; //Set query result to fail. string connectionString = Configuration["ConnectionStrings:DefaultConnectionString"]; int result = -1; //Create list of all quizzes var quizzes = new List <QuizDetails>(); var completedQuizzes = new List <QuizDetails>(); using (SqlConnection connection = new SqlConnection(connectionString)) { //Create the SQL command and set type to stored procedure. SqlCommand command = new SqlCommand("Quizzes_GetByGroupID", connection); command.CommandType = System.Data.CommandType.StoredProcedure; //Set the parameters for the command. command.Parameters.AddWithValue("@groupID", userAndGroupIDDTO.GroupID); connection.Open(); //Execute the query and store the result. //Get all quizzes that belong to a group. using (SqlDataReader reader = command.ExecuteReader()) { if (reader.HasRows) { while (reader.Read()) { var quiz = new QuizDetails { GroupID = reader.GetInt32(reader.GetOrdinal("GroupID")), QuizID = reader.GetInt32(reader.GetOrdinal("QuizID")), QuizName = reader.GetString(reader.GetOrdinal("QuizName")) }; quizzes.Add(quiz); } reader.Close(); } else { return(BadRequest("Could not find matching quiz.")); } } //Create list of all questions var questions = new List <QuestionDetails>(); command = new SqlCommand("Questions_GetByQuizID", connection); command.CommandType = System.Data.CommandType.StoredProcedure; //Get all questions for each quiz. foreach (QuizDetails quiz in quizzes) { //Set the parameters for the command. command.Parameters.Clear(); command.Parameters.AddWithValue("@quizID", quiz.QuizID); //Execute the query and store the result using (SqlDataReader reader = command.ExecuteReader()) { if (reader.HasRows) { while (reader.Read()) { var question = new QuestionDetails { QuestionID = reader.GetInt32(reader.GetOrdinal("QuestionID")), QuizID = reader.GetInt32(reader.GetOrdinal("QuizID")), QuestionText = reader.GetString(reader.GetOrdinal("QuestionText")) }; questions.Add(question); } reader.Close(); } else { return(BadRequest("Could not find matching questions.")); } } } //Create list of all choices var choices = new List <ChoiceDetails>(); command = new SqlCommand("Choices_GetByQuizID", connection); command.CommandType = System.Data.CommandType.StoredProcedure; //Get all choices for each quiz. foreach (QuizDetails quiz in quizzes) { //Set the parameters for the command. command.Parameters.Clear(); command.Parameters.AddWithValue("@quizID", quiz.QuizID); //Execute the query and store the result using (SqlDataReader reader = command.ExecuteReader()) { if (reader.HasRows) { while (reader.Read()) { var choice = new ChoiceDetails { ChoiceID = reader.GetInt32(reader.GetOrdinal("ChoiceID")), QuizID = reader.GetInt32(reader.GetOrdinal("QuizID")), QuestionID = reader.GetInt32(reader.GetOrdinal("QuestionID")), ChoiceText = reader.GetString(reader.GetOrdinal("ChoiceText")), isCorrect = reader.GetBoolean(reader.GetOrdinal("IsCorrect")) }; choices.Add(choice); } reader.Close(); } else { return(BadRequest("Could not find matching choices.")); } } } //Add the choices to the matching question item. foreach (QuestionDetails question in questions) { var temp = new List <ChoiceDetails>(); foreach (ChoiceDetails choice in choices) { if (choice.QuestionID == question.QuestionID) { temp.Add(choice); } } question.Choices = temp.ToArray(); } //Add the questions to the matching quiz item. foreach (QuizDetails quiz in quizzes) { var temp = new List <QuestionDetails>(); foreach (QuestionDetails question in questions) { if (question.QuizID == quiz.QuizID) { temp.Add(question); } } quiz.Questions = temp.ToArray(); } //Create the SQL command and set type to stored procedure. command = new SqlCommand("Results_CheckIfQuizCompleted", connection); command.CommandType = System.Data.CommandType.StoredProcedure; foreach (QuizDetails quiz in quizzes) { //Set the parameters for the command. command.Parameters.Clear(); command.Parameters.AddWithValue("@quizID", quiz.QuizID); command.Parameters.AddWithValue("@userID", userAndGroupIDDTO.UserID); command.Parameters.Add("@result", System.Data.SqlDbType.Int).Direction = System.Data.ParameterDirection.Output; //Execute the query and store the result. queryResult = command.ExecuteNonQuery(); //Get the id for the quiz previously created. result = (int)command.Parameters["@result"].Value; if (result == 1) { completedQuizzes.Add(quiz); } } connection.Close(); } //Return OK result with uncompleted quizzes return(Ok( completedQuizzes )); }
public List <QuizAttempts> GetReflectionToolQuizAttempts(string userId, int attempt, QuizDetails quizDetails) { var reflectionToolQuizzes = _reflectionToolAdapter.GetReflectionToolQuestions(); var latestAttempt = _reflectionToolAdapter.GetLatestAttemptByUser(userId); List <ReflectionToolQuizAttempt> result = new List <ReflectionToolQuizAttempt>(); if (latestAttempt != null) { if (attempt == 1) { result = _reflectionToolAdapter.GetReflectionToolAttempts(userId, latestAttempt.attemptcount); } else { if (latestAttempt.attemptcount > 1) { _reflectionToolAdapter.GetReflectionToolAttempts(userId, latestAttempt.attemptcount - 1); } } } List <QuizAttempts> quizAttempts = new List <QuizAttempts>(); if (result != null) { foreach (var quizAttempt in result) { QuizAttempts attempts = new QuizAttempts { question = reflectionToolQuizzes.FirstOrDefault(q => q.id == quizAttempt.questionid)?.question, answer = quizAttempt.answer, userId = quizAttempt.userid, selectedoptions = string.Join(",", quizAttempt.selectedoptions), attempt = quizAttempt.attemptcount, type = quizDetails.type }; quizAttempts.Add(attempts); } } return(quizAttempts); }
public IActionResult GetQuizByQuizID([FromBody] int quizID) { string connectionString = Configuration["ConnectionStrings:DefaultConnectionString"]; //Create list of all quizzes var quiz = new QuizDetails(); using (SqlConnection connection = new SqlConnection(connectionString)) { //Create the SQL command and set type to stored procedure. SqlCommand command = new SqlCommand("Quiz_GetByQuizID", connection); command.CommandType = System.Data.CommandType.StoredProcedure; //Set the parameters for the command. command.Parameters.AddWithValue("@quizID", quizID); connection.Open(); //Execute the query and store the result. //Get all quizzes that belong to a group. using (SqlDataReader reader = command.ExecuteReader()) { if (reader.HasRows) { while (reader.Read()) { quiz = new QuizDetails { GroupID = reader.GetInt32(reader.GetOrdinal("GroupID")), QuizID = reader.GetInt32(reader.GetOrdinal("QuizID")), QuizName = reader.GetString(reader.GetOrdinal("QuizName")) }; } reader.Close(); } else { return(BadRequest("Could not find matching quiz.")); } } //Create list of all questions var questions = new List <QuestionDetails>(); command = new SqlCommand("Questions_GetByQuizID", connection); command.CommandType = System.Data.CommandType.StoredProcedure; //Get all questions for each quiz. //Set the parameters for the command. command.Parameters.Clear(); command.Parameters.AddWithValue("@quizID", quiz.QuizID); //Execute the query and store the result using (SqlDataReader reader = command.ExecuteReader()) { if (reader.HasRows) { while (reader.Read()) { var question = new QuestionDetails { QuestionID = reader.GetInt32(reader.GetOrdinal("QuestionID")), QuizID = reader.GetInt32(reader.GetOrdinal("QuizID")), QuestionText = reader.GetString(reader.GetOrdinal("QuestionText")) }; questions.Add(question); } reader.Close(); } else { return(BadRequest("Could not find matching questions.")); } } //Create list of all choices var choices = new List <ChoiceDetails>(); command = new SqlCommand("Choices_GetByQuizID", connection); command.CommandType = System.Data.CommandType.StoredProcedure; //Set the parameters for the command. command.Parameters.Clear(); command.Parameters.AddWithValue("@quizID", quiz.QuizID); //Execute the query and store the result using (SqlDataReader reader = command.ExecuteReader()) { if (reader.HasRows) { while (reader.Read()) { var choice = new ChoiceDetails { ChoiceID = reader.GetInt32(reader.GetOrdinal("ChoiceID")), QuizID = reader.GetInt32(reader.GetOrdinal("QuizID")), QuestionID = reader.GetInt32(reader.GetOrdinal("QuestionID")), ChoiceText = reader.GetString(reader.GetOrdinal("ChoiceText")), isCorrect = reader.GetBoolean(reader.GetOrdinal("IsCorrect")) }; choices.Add(choice); } reader.Close(); } else { return(BadRequest("Could not find matching choices.")); } } //Add the choices to the matching question item. foreach (QuestionDetails question in questions) { var tempChoices = new List <ChoiceDetails>(); foreach (ChoiceDetails choice in choices) { if (choice.QuestionID == question.QuestionID) { tempChoices.Add(choice); } } question.Choices = tempChoices.ToArray(); } quiz.Questions = questions.ToArray(); connection.Close(); } //Return OK result with quizzes return(Ok( quiz )); }
/// <summary> /// For getting ProductivityZoneQuizAttempts /// </summary> /// <param name="userId"></param> /// <param name="attempt"></param> /// <param name="quizDetails"></param> /// <returns></returns> public List <QuizAttempts> GetProductivityZoneQuizAttempts(string userId, int attempt, QuizDetails quizDetails) { var userFilter = Builders <BsonDocument> .Filter.Eq("userid", userId); var latestAttempt = _productivityZoneQuizAdapter.GetLatestAttemptByUser(userId); List <BsonDocument> result = new List <BsonDocument>(); if (latestAttempt != null) { if (attempt == 1) { var attemptFilter = Builders <BsonDocument> .Filter.Eq("attemptcount", latestAttempt.attemptcount); var userAndAttempt = Builders <BsonDocument> .Filter.And(userFilter, attemptFilter); result = _quizAttempt.GetRecords(_productivityZoneAttemptsCollection, userAndAttempt); } else { if (latestAttempt.attemptcount > 1) { var attemptFilter = Builders <BsonDocument> .Filter.Eq("attemptcount", latestAttempt.attemptcount - 1); var userAndAttempt = Builders <BsonDocument> .Filter.And(userFilter, attemptFilter); result = _quizAttempt.GetRecords(_productivityZoneAttemptsCollection, userAndAttempt); } } } var productivityZoneQuizzes = _productivityZoneQuizAdapter.GetProductivityZoneQuizzes(); List <QuizAttempts> quizAttempts = new List <QuizAttempts>(); foreach (var item in result) { item.TryGetValue("answer", out BsonValue answerValue); item.TryGetValue("userid", out BsonValue useridValue); item.TryGetValue("attemptcount", out BsonValue attemptValue); item.TryGetValue("questionid", out BsonValue questionidValue); var question = productivityZoneQuizzes.Where(a => a.id == Common.IntegerNullCheck(questionidValue)); quizAttempts.Add(new QuizAttempts { question = question.Count() == 0 ? "" : question.Select(a => a.question).FirstOrDefault().ToString(CultureInfo.InvariantCulture), answer = Common.StringNullCheck(answerValue), userId = Common.StringNullCheck(useridValue), attempt = Common.IntegerNullCheck(attemptValue), type = quizDetails.type }); } return(quizAttempts); }
/// <summary> /// For getting GetCulturalObservationQuizAttempts - Pending /// </summary> /// <param name="userId"></param> /// <param name="attempt"></param> /// <param name="quizDetails"></param> /// <returns></returns> public List <QuizAttempts> GetCulturalObservationQuizAttempts(string userId, int attempt, QuizDetails quizDetails) { var userFilter = Builders <BsonDocument> .Filter.Eq("userid", userId); var latestAttempt = _culturalObservationAdapter.GetLatestAttemptByUser(userId); List <BsonDocument> result = new List <BsonDocument>(); if (latestAttempt != null) { if (attempt == 1) { var attemptFilter = Builders <BsonDocument> .Filter.Eq("attemptcount", latestAttempt.attemptcount); var userAndAttempt = Builders <BsonDocument> .Filter.And(userFilter, attemptFilter); result = _quizAttempt.GetRecords(_culturalObservationAttemptsCollection, userAndAttempt); } else { if (latestAttempt.attemptcount > 1) { var attemptFilter = Builders <BsonDocument> .Filter.Eq("attemptcount", latestAttempt.attemptcount - 1); var userAndAttempt = Builders <BsonDocument> .Filter.And(userFilter, attemptFilter); result = _quizAttempt.GetRecords(_culturalObservationAttemptsCollection, userAndAttempt); } } } var culturalObservationQuizzes = _culturalObservationAdapter.GetCutlturalObservationQuiz(); List <QuizAttempts> quizAttempts = new List <QuizAttempts>(); foreach (var item in result) { item.TryGetValue("answer", out BsonValue answerValue); item.TryGetValue("userid", out BsonValue useridValue); item.TryGetValue("date", out BsonValue dateValue); item.TryGetValue("meetingtitle", out BsonValue meetingTitleValue); item.TryGetValue("scoring", out BsonValue scoringValue); item.TryGetValue("comments", out BsonValue commentsValue); item.TryGetValue("attemptcount", out BsonValue attemptValue); item.TryGetValue("questionid", out BsonValue questionidValue); var question = culturalObservationQuizzes.Where(a => a.id == Common.IntegerNullCheck(questionidValue)); quizAttempts.Add(new QuizAttempts { question = question.Count() == 0 ? "" : question.Select(a => a.question).FirstOrDefault().ToString(CultureInfo.InvariantCulture), answer = Common.StringNullCheck(answerValue), userId = Common.StringNullCheck(useridValue), date = Common.StringNullCheck(dateValue), meetingTitle = Common.StringNullCheck(meetingTitleValue), scoring = Common.StringNullCheck(scoringValue), comments = Common.StringNullCheck(commentsValue), attempt = Common.IntegerNullCheck(attemptValue), type = quizDetails.type }); } return(quizAttempts); }
/// <summary> /// for getting continuous learning attempts /// </summary> /// <param name="userId"></param> /// <param name="attempt"></param> /// <param name="quizDetails"></param> /// <returns></returns> public List <QuizAttempts> GetContinuousLearningQuizAttempts(string userId, int attempt, QuizDetails quizDetails) { var userFilter = Builders <BsonDocument> .Filter.Eq("userid", userId); var latestAttempt = _continuousLearningAdapter.GetLatestAttemptByUser(userId); List <BsonDocument> result = new List <BsonDocument>(); if (latestAttempt != null) { if (attempt == 1) { var attemptFilter = Builders <BsonDocument> .Filter.Eq("attemptcount", latestAttempt.attemptcount); var userAndAttempt = Builders <BsonDocument> .Filter.And(userFilter, attemptFilter); result = _quizAttempt.GetRecords(_continuousLearningAttemptsCollection, userAndAttempt); } else { if (latestAttempt.attemptcount > 1) { var attemptFilter = Builders <BsonDocument> .Filter.Eq("attemptcount", latestAttempt.attemptcount - 1); var userAndAttempt = Builders <BsonDocument> .Filter.And(userFilter, attemptFilter); result = _quizAttempt.GetRecords(_continuousLearningAttemptsCollection, userAndAttempt); } } } var continuousLearningQuizzes = _continuousLearningAdapter.GetContinuousLearningAssessmentQuizzes(); List <QuizAttempts> quizAttempts = new List <QuizAttempts>(); foreach (var item in result) { item.TryGetValue("answer", out BsonValue answerValue); item.TryGetValue("userid", out BsonValue useridValue); item.TryGetValue("attemptcount", out BsonValue attemptValue); item.TryGetValue("questionid", out BsonValue questionidValue); item.TryGetValue("yes", out BsonValue yesValue); item.TryGetValue("somewhat", out BsonValue somewhatValue); item.TryGetValue("no", out BsonValue noValue); var answer = Common.BooleanNullCheck(yesValue) ? "Yes" : Common.BooleanNullCheck(somewhatValue) ? "Somewhat" : "No"; var question = continuousLearningQuizzes.Where(a => a.id == Common.IntegerNullCheck(questionidValue)); quizAttempts.Add(new QuizAttempts { question = question.Count() == 0 ? "" : question.Select(a => a.question).FirstOrDefault().ToString(CultureInfo.InvariantCulture), answer = answer, userId = Common.StringNullCheck(useridValue), attempt = Common.IntegerNullCheck(attemptValue), type = quizDetails.type }); } return(quizAttempts); }
public List <QuizAttempts> GetBlindSpotQuizAttempts(string userId, int attempt, QuizDetails quizDetails) { var latestAttempt = _blindSpotAdapter.GetLatestAttemptByUser(userId); BlindSpotQuizAttempts blindSpotAttempts = new BlindSpotQuizAttempts(); if (latestAttempt != null) { if (attempt == 1) { blindSpotAttempts = _blindSpotAdapter.GetBlindSpotAttemptResponse(latestAttempt.attemptcount, userId); } else { if (latestAttempt.attemptcount > 1) { blindSpotAttempts = _blindSpotAdapter.GetBlindSpotAttemptResponse(latestAttempt.attemptcount - 1, userId); } } } if (blindSpotAttempts?.selectedadjectives == null) { return(new List <QuizAttempts>()); } var blindSpotResponseByCoWorkers = _blindSpotAdapter.GetCoWorkerResponsesByAttempt(blindSpotAttempts.id); var coworkerResponses = string.Empty; foreach (var coworkerResponse in blindSpotResponseByCoWorkers) { coworkerResponses += string.Join(",", coworkerResponse.selectedadjectives); } return(new List <QuizAttempts> { new QuizAttempts { question = string.Join(",", blindSpotAttempts.selectedadjectives), answer = coworkerResponses, userId = blindSpotAttempts.userid, attempt = blindSpotAttempts.attemptcount, type = quizDetails.type } }); }
public List <QuizAttempts> GetCuriousQuizAttempts(string userId, int attempt, QuizDetails quizDetails) { var latestAttempt = _curiousQuizAdapter.GetLatestAttemptByUser(userId); List <CuriousQuizAttempts> result = new List <CuriousQuizAttempts>(); if (latestAttempt != null) { if (attempt == 1) { result = _curiousQuizAdapter.GetCuriousAttempts(userId, latestAttempt.attemptcount); } else { if (latestAttempt.attemptcount > 1) { result = _curiousQuizAdapter.GetCuriousAttempts(userId, latestAttempt.attemptcount - 1); } } } var curiousQuizzes = _curiousQuizAdapter.GetCuriosQuizzes(); List <QuizAttempts> quizAttempts = new List <QuizAttempts>(); foreach (var item in result) { var question = curiousQuizzes.FirstOrDefault(a => a.id == Common.IntegerNullCheck(item.questionid)); quizAttempts.Add(new QuizAttempts { id = question.id, question = question.question, answer = Common.StringNullCheck(item.answer), userId = Common.StringNullCheck(item.userid), attempt = Common.IntegerNullCheck(item.attemptcount), type = quizDetails.type }); } return(quizAttempts); }