Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #5
0
        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);
        }