コード例 #1
0
        private async Task ConvertAndSendQuizResultAsync(QuizResult quizResult, IEnumerable <QuizQuestionResultDTO> results)
        {
            if (quizResult == null)
            {
                return;
            }

            var lmsUserParameters = quizResult.LmsUserParametersId.HasValue
                ? this.LmsUserParametersModel.GetOneById(quizResult.LmsUserParametersId.Value).Value
                : null;

            if (lmsUserParameters == null || lmsUserParameters.LmsUser == null)
            {
                return;
            }

            var lmsQuizId = quizResult.Quiz.LmsQuizId;

            if (lmsQuizId == null)
            {
                return;
            }
            var converter =
                this.ConverterFactory.GetResultConverter((LmsProviderEnum)lmsUserParameters.CompanyLms.LmsProviderId);

            await converter.ConvertAndSendQuizResultToLmsAsync(results, quizResult, lmsUserParameters);
        }
コード例 #2
0
        public IHttpActionResult GetQuizResult(string quizId, string username)
        {
            // Check we have all the parameters we need
            if (String.IsNullOrEmpty(quizId) || String.IsNullOrEmpty(username))
            {
                return(NotFound());
            }

            // We do, cool, lets find the user
            User UserDb = WmData.Users.FirstOrDefault(u => u.Username == username);

            // Right lets get the result
            Guid       QuizId = new Guid(quizId);
            QuizResult Result = WmData.QuizResults.FirstOrDefault(r => r.QuizId == QuizId && r.UserId == UserDb.UserId);

            // Did we get a result?
            if (Result == null)
            {
                return(NotFound());
            }
            else
            {
                return(Ok(Result));
            }
        }
コード例 #3
0
        public QuizResult ScoreQuiz(Model.Quiz quiz)
        {
            var results = new QuizResult();

            results.Quiz = quiz;

            int totalQuestions   = quiz.Questions.Count;
            int correctQuestions = 0;

            foreach (var question in quiz.Questions)
            {
                if (question.Choices.Exists(c => c.IsSelected && c.IsCorrectChoice))
                {
                    correctQuestions++;
                }
            }

            decimal decimalPercent = (((decimal)correctQuestions) / ((decimal)totalQuestions));

            results.PercentScore   = (int)(decimalPercent * 100.0m);
            results.IsPassingScore = results.PercentScore >= quiz.PassPercentage;

            var tokens = GetTokens(HttpContext.Current.Request, quiz, results);

            results.Actions.AddRange(ProcessTokensInActions(quiz.Actions.Where(a => a.Condition == QuizCondition.QuizTaken), tokens));
            if (results.IsPassingScore)
            {
                results.Actions.AddRange(ProcessTokensInActions(quiz.Actions.Where(a => a.Condition == QuizCondition.QuizPassed), tokens));
            }

            return(results);
        }
コード例 #4
0
ファイル: QuizResultService.cs プロジェクト: BurnOutDev/EQuiz
        public QuizResult Insert(QuizResult o)
        {
            var quiz = _quizResultRepo.Insert(o);

            _quizRepo.Save();
            return(quiz);
        }
コード例 #5
0
    public static IEnumerator SaveQuizResults(QuizResult quizResultsToSave)
    {
        string questionIDs = "";
        string answers     = "";

        for (int i = 0; i < quizResultsToSave.questionIDs.Length; i++)
        {
            questionIDs += quizResultsToSave.questionIDs[i] + ",";

            if (quizResultsToSave.questionAnswers [i] != 0)
            {
                answers += quizResultsToSave.questionAnswers [i] + ",";
            }
            else
            {
                answers += ",";
            }
        }

        questionIDs += "|";
        answers     += "|";

        WWWForm myForm = new WWWForm();

        myForm.AddField("questionIDs", questionIDs);
        myForm.AddField("answers", answers);
        myForm.AddField("userID", quizResultsToSave.userID);

        WWW www = new WWW("http://veuspillet.dk/saveQuizResultData.php", myForm);

        yield return(www);

        Debug.Log(www.text);
    }
コード例 #6
0
        private int CalculateScore(QuizResult result)
        {
            var quiz      = _quizRepo.Get(result.QuizId);
            var usePoints = quiz.AllowPoints;


            int count = 0;

            if (usePoints)
            {
                foreach (var userAnswer in result.UserAnswers)
                {
                    var points = _questionRepo.Get(userAnswer.QuestionId).Points;

                    var correctAnswer = _answerRepo.Get(userAnswer.AnswerId);
                    if (correctAnswer != null && correctAnswer.IsCorrect)
                    {
                        count += points;
                    }
                }
                return(count);
            }

            foreach (var userAnswer in result.UserAnswers)
            {
                var correctAnswer = _answerRepo.Get(userAnswer.AnswerId);
                if (correctAnswer != null && correctAnswer.IsCorrect)
                {
                    count++;
                }
            }
            return(count);
        }
コード例 #7
0
        public override void Unload()
        {
            NetHandler.Unload();
            NPCSets.Unload();
            SquireMinionTypes.Unload();
            NecromancerAccessory.Unload();
            SquireGlobalProjectile.Unload();
            IdleLocationSets.Unload();
            TargetSelectionTacticHandler.Unload();
            UserInterfaces.Unload();
            MinionTacticsGroupMapper.Unload();
            LandChunkConfigs.Unload();
            SpriteCompositionManager.Unload();
            CritterConfigs.Unload();
            AmuletOfManyMinionsWorld.Unload();
            PartyHatSystem.Unload();
            CombatPetLevelTable.Unload();
            CombatPetBuff.Unload();
            BlackCatMinion.Unload();
            QuizResult.Unload();
            DefaultPetsQuizData.Unload();

            CycleTacticHotKey       = null;
            CycleTacticsGroupHotKey = null;
            QuickDefendHotKey       = null;
        }
コード例 #8
0
        private static QuizResult ConvertDto(QuizResultDTO resultDTO, Quiz quiz, int acSessionId, CompanyEventQuizMapping companyEventQuizMapping)
        {
            var instance = new QuizResult();

            instance.Score       = resultDTO.score;
            instance.StartTime   = resultDTO.startTime.ConvertFromUnixTimeStamp();
            instance.EndTime     = resultDTO.endTime.ConvertFromUnixTimeStamp();
            instance.Email       = resultDTO.email?.Trim();
            instance.ACEmail     = resultDTO.acEmail?.Trim();
            instance.IsArchive   = resultDTO.isArchive;
            instance.DateCreated = DateTime.Now;

            instance.AppInFocusTime   = resultDTO.appInFocusTime;
            instance.AppMaximizedTime = resultDTO.appMaximizedTime;
            instance.Guid             = resultDTO.guid;
            instance.ParticipantName  = resultDTO.participantName?.Trim();

            /**/
            instance.Quiz             = quiz;
            instance.ACSessionId      = acSessionId;
            instance.EventQuizMapping = companyEventQuizMapping;
            /**/

            instance.LmsId = resultDTO.lmsId;
            instance.LmsUserParametersId = resultDTO.lmsUserParametersId > 0 ? new int?(resultDTO.lmsUserParametersId) : null;
            instance.isCompleted         = resultDTO.isCompleted;
            return(instance);
        }
コード例 #9
0
        public ActionResult AddQuizresult(string iin, decimal point, string name)
        {
            try
            {
                using (DiplomDB db = new DiplomDB())
                {
                    var        tester = db.Testers.FirstOrDefault(p => p.iin == iin);
                    QuizResult qr     = new QuizResult();
                    var        id     = db.QuizResults.Max(quizrez => quizrez.id);
                    qr.id         = id + 1;
                    qr.maxPoint   = 100;
                    qr.userPoint  = point;
                    qr.name       = name;
                    qr.testerDate = DateTime.Today;
                    qr.testerID   = tester.id;
                    db.QuizResults.Add(qr);
                    db.SaveChanges();
                }
                ViewBag.mes = "1";
            }
            catch (Exception ex)
            {
                ViewBag.mes = "0";
                throw ex;
            }

            return(View());
        }
コード例 #10
0
        public JsonResult PostResult(QuizResult result)
        {
            result.UserId = User.Identity.Name;
            result.Score  = CalculateScore(result);
            _quizResultService.Insert(result);

            return(Json(result.Id));
        }
コード例 #11
0
        public QuizResult Insert(QuizResult o)
        {
            o.Score = CalculateScore(o);
            var quiz = _quizResultRepo.Insert(o);

            _quizRepo.Save();
            return(quiz);
        }
コード例 #12
0
        public async Task <QuizResult> AddQuizResult(QuizResult quizResult)
        {
            await _context.AddAsync(quizResult);

            await _context.SaveChangesAsync();

            return(quizResult);
        }
コード例 #13
0
 public IOperationResult InsertQuizResult(QuizResult quizResult)
 {
     return(GetQuizResultsCollection().Bind(collection => OperationResult.Try(() =>
     {
         collection.InsertOne(quizResult);
         return OperationResult.Success();
     })));
 }
コード例 #14
0
 private static ResultOutDto MapOne(QuizResult result, bool mask = false) =>
 new ResultOutDto
 {
     Name         = result.User.Name,
     Phone        = mask ? result.User.Phone.MaskMobile(3, "****") : result.User.Phone,
     Points       = result.Points,
     Seconds      = CalcSeconds(result.Ended, result.Started),
     TelegramName = result.User.TelegramName
 };
コード例 #15
0
        public QuizResult[] GetQuizResultsByAttendee(string AttendeeEmail)
        {
            if (acConn == null)
            {
                return(null);
            }

            List <QuizResult> qResults = new List <QuizResult>();

            string[] quizzes = GetQuizzesByAttendee(AttendeeEmail);

            StatusInfo sInfo;

            foreach (string qID in quizzes)
            {
                XmlNodeList rNodes = acConn.Report_QuizTakers(qID, string.Empty, out sInfo);
                foreach (XmlNode node in rNodes)
                {
                    //retrieve results for given account info
                    if (node.SelectSingleNode("Login/text()").Value.Equals(AttendeeEmail))
                    {
                        try
                        {
                            QuizResult result = new QuizResult();
                            result.sco_id   = node.Attributes["sco-id"].Value;
                            result.asset_id = node.Attributes["asset-id"].Value;
                            int.TryParse(node.Attributes["attempts"].Value, out result.attempts);
                            int.TryParse(node.Attributes["time-taken"].Value, out result.time_taken);

                            if (!DateTime.TryParseExact(node.SelectSingleNode("date-created/text()").Value, @"yyyy-MM-dd\THH:mm:ss.fffzzz", DateTimeFormatInfo.InvariantInfo, DateTimeStyles.AdjustToUniversal, out result.date_created))
                            {
                                result.date_created = default(DateTime);
                            }

                            result.login          = node.SelectSingleNode("Login/text()").Value;
                            result.principal_name = node.SelectSingleNode("principal-Name/text()").Value;

                            if (node.SelectSingleNode("status/text()") != null)
                            {
                                result.status = node.SelectSingleNode("status/text()").Value;
                            }
                            result.QuizName = node.SelectSingleNode("Name/text()").Value;


                            qResults.Add(result);
                        }
                        catch (Exception ex)
                        {
                            Trace.WriteLine(ex.Message);
                        }
                    }
                }
            }


            return(qResults.ToArray());
        }
コード例 #16
0
        public async Task <ActionResult> DeleteConfirmed(Guid id)
        {
            QuizResult quizResult = await db.QuizResults.FindAsync(id);

            db.QuizResults.Remove(quizResult);
            await db.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
コード例 #17
0
        public void UpdateTimeForUser(QuizResult result)
        {
            var sorting = (int)Math.Round((DateTime.Now - result.Started).TotalSeconds);

            var update = Builders <QuizResult> .Update
                         .Set(r => r.Sorting, sorting)
                         .Set(r => r.Ended, DateTime.Now);

            _results.UpdateOne(GlobalChatIdFilter(result.User.ChatId), update);
        }
コード例 #18
0
 public void CreateQuizResult(QuizResult quizResult)
 {
     this.ExecuteInsertQuery("QuizResults", (command) =>
     {
         command.Parameters.Add(new SqlParameter("Id", this.NextId++));
         command.Parameters.Add(new SqlParameter("Points", quizResult.Points));
         command.Parameters.Add(new SqlParameter("QuizId", quizResult.Quiz.Id));
         command.Parameters.Add(new SqlParameter("UserId", quizResult.User.Id));
     }, "Id", "Points", "QuizId", "UserId");
 }
コード例 #19
0
        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            //questionIdList = (List<int>)Session["questionIdList"];
            //choiceList = (List<int>)Session["choiceList"];

            IIdentity id       = User.Identity;
            dynamic   profile  = ProfileBase.Create(id.Name);
            string    username = id.Name;

            foreach (GridViewRow row in gvQuestions.Rows)
            {
                RadioButtonList rblOptions    = (RadioButtonList)row.FindControl("rblOptions");
                Label           lblQuestionId = (Label)row.FindControl("lblQuestionId");
                Label           lblQuestion   = (Label)row.FindControl("lblQuestion");

                if (rblOptions.SelectedItem != null)
                {
                    int qId      = Convert.ToInt32(lblQuestionId.Text);
                    int choiceId = Convert.ToInt32(rblOptions.SelectedValue);
                    questionIdList.Add(qId);
                    choiceList.Add(choiceId);
                }
            }

            string confirmValue = Request.Form["confirm_value"];

            if (confirmValue == "Yes")
            {
                QuizResult qr     = new QuizResult();
                int        quizId = Convert.ToInt32(Session["QuizId"]);
                qr.QuizId        = quizId;
                qr.Username      = username;
                qr.Name          = context.Employees.Where(x => x.UserName == username).Select(x => x.Name).First();
                qr.TimeSubmitted = DateTime.Now;
                context.QuizResults.Add(qr);
                context.SaveChanges();

                QuizResult qr2          = context.QuizResults.Where(x => x.Username == username).Where(x => x.QuizId == quizId).OrderByDescending(x => x.ResultId).First();
                int        quizResultId = qr2.ResultId;

                for (int i = 0; i < questionIdList.Count; i++)
                {
                    QuestionResponse qresp = new QuestionResponse();
                    qresp.ResultId      = qr2.ResultId;
                    qresp.QuestionId    = questionIdList.ElementAt(i);
                    qresp.OptionId      = choiceList.ElementAt(i);
                    qresp.TimeSubmitted = DateTime.Now;
                    context.QuestionResponses.Add(qresp);
                    context.SaveChanges();
                }

                Session["ResultId"] = quizResultId;
                Response.Redirect("~/Users/ViewQuizResult.aspx");
            }
        }
コード例 #20
0
        public static QuizResultViewModel ToQuizResultViewModel(this QuizResult result)
        {
            var vm = new QuizResultViewModel()
            {
                EllapsedTime = result.EllapsedTime,
                Score        = result.Score,
                UserId       = result.UserId,
            };

            return(vm);
        }
コード例 #21
0
        public async Task <IActionResult> CreateResult(QuizResult quizResult)
        {
            var command = new CreateResultCommand(quizResult);
            var result  = await _mediator.Send(command);

            if (result)
            {
                return(Ok());
            }

            return(NotFound());
        }
コード例 #22
0
        public void UpdateQuestionsForUser(QuizResult result)
        {
            var points = result.QuestionAnswers.Sum(answer => answer.Point);

            result.Points = points;

            var update = Builders <QuizResult> .Update
                         .Set(r => r.Points, points)
                         .Set(r => r.QuestionAnswers, result.QuestionAnswers);

            _results.UpdateOne(GlobalChatIdFilter(result.User.ChatId), update);
        }
コード例 #23
0
        public Object SumbitResults([FromBody] QuizResultSubmitModel ResultModel)
        {
            System.Console.WriteLine(ResultModel);
            SlimUser   currentUser    = HttpContext.Session.GetObjectFromJson <SlimUser> ("currentUser");
            int        LoggedUserID   = currentUser.UserID;
            QuizResult ExistingResult = _context.quiz_results.SingleOrDefault(quiz_result => quiz_result.UserID == LoggedUserID && quiz_result.QuizID == ResultModel.QuizID);

            if (ExistingResult == null)
            {
                QuizResult QuizResult = new QuizResult {
                    ResultString = ResultModel.ResultString,
                    QuizID       = ResultModel.QuizID,
                    UserID       = LoggedUserID
                };
                _context.quiz_results.Add(QuizResult);
                _context.SaveChanges();
                QuizResult SavedNewResult = _context.quiz_results.SingleOrDefault(quiz_result => quiz_result.UserID == QuizResult.UserID && quiz_result.QuizID == QuizResult.QuizID);
                if (SavedNewResult != null)
                {
                    SlimQuizResult SlimQuizResult = new SlimQuizResult {
                        QuizResultID = SavedNewResult.QuizResultID,
                        ResultString = SavedNewResult.ResultString,
                        QuizID       = SavedNewResult.QuizID,
                        UserID       = SavedNewResult.UserID
                    };
                    currentUser.QuizResults.Add(SlimQuizResult);
                    HttpContext.Session.SetObjectAsJson("currentUser", currentUser);
                    return(SavedNewResult);
                }
                return(BadRequest("Your quiz failed for some reason"));
            }
            ExistingResult.ResultString = ResultModel.ResultString;
            _context.SaveChanges();
            QuizResult SavedResult = _context.quiz_results.SingleOrDefault(quiz_result => quiz_result.UserID == ExistingResult.UserID && quiz_result.QuizID == ExistingResult.QuizID);

            if (SavedResult != null)
            {
                SlimQuizResult SlimQuizResult = new SlimQuizResult {
                    QuizResultID = ExistingResult.QuizResultID,
                    ResultString = ExistingResult.ResultString,
                    QuizID       = ExistingResult.QuizID,
                    UserID       = ExistingResult.UserID
                };
                //HARDCODED QUIZ RESULT!!! WILL NEED FORLOOP
                currentUser.QuizResults[0] = SlimQuizResult;
                //HARDCODED QUIZ RESULT!!! WILL NEED FORLOOP

                HttpContext.Session.SetObjectAsJson("currentUser", currentUser);

                return(SavedResult);
            }
            return(BadRequest("Your quiz failed for some reason"));
        }
コード例 #24
0
        /// <summary>
        /// Serves random sample for populating a quiz.
        /// </summary>
        public IActionResult GetQuiz()
        {
            string[] sample1, sample2;
            sampler.GetPermutatedSample(out sample1, out sample2);
            QuizResult res = new QuizResult
            {
                Words1 = sample1,
                Words2 = sample2
            };

            return(new ObjectResult(res));
        }
コード例 #25
0
        public Statistics Get(int id)
        {
            QuizResult qResult = null;

            using (var db = new PollContext())
            {
                qResult = db.QuizResultSet.Single(r => r.Id == id);
            }

            var statistics = JsonConvert.DeserializeObject <Statistics>(qResult.Result);

            return(statistics);
        }
コード例 #26
0
        public QuizResult AddUserQuiz(User user)
        {
            var result = new QuizResult
            {
                User    = user,
                Points  = 0,
                Started = DateTime.Now
            };

            _results.InsertOne(result);

            return(result);
        }
コード例 #27
0
        public async Task <ActionResult> Edit([Bind(Include = "ResultID,ScoreObtained,QuizID,StudentID,AssessmentDate")] QuizResult quizResult)
        {
            if (ModelState.IsValid)
            {
                db.Entry(quizResult).State = EntityState.Modified;
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            ViewBag.QuizID    = new SelectList(db.Quizzes, "QuizID", "QuizName", quizResult.QuizID);
            ViewBag.StudentID = new SelectList(db.Students, "StudentID", "FirstName", quizResult.StudentID);
            return(View(quizResult));
        }
コード例 #28
0
 public static QuizReviewModel FromDomain(Quiz q, QuizResult r)
 {
     return(new QuizReviewModel
     {
         Quiz = q,
         Result = r,
         Review = q.AllowReview,
         Passed = r.Passed,
         Correct = r.Answers.Count(x => x.Correct),
         Needed = r.RequiredToPass,
         Points = r.PointsEarned ?? 0,
     });
 }
コード例 #29
0
        private QuizQuestionResult ConvertDto(QuizQuestionResultDTO resultDTO, QuizResult quizResult)
        {
            var instance = new QuizQuestionResult
            {
                Question     = resultDTO.question,
                IsCorrect    = resultDTO.isCorrect,
                QuestionType = QuestionTypeModel.GetById(resultDTO.questionTypeId),
                QuizResult   = quizResult,
                QuestionRef  = QuestionModel.GetOneById(resultDTO.questionId).Value
            };

            return(instance);
        }
コード例 #30
0
        public ActionResult QuizResult(ModelIspring a)
        {
            //HttpWebResponse responce = (HttpWebResponse)request.GetResponse();

            //using (StreamReader stream = new StreamReader(
            //        responce.GetResponseStream(), Encoding.UTF8))
            //{
            //    s = stream.ReadToEnd();
            //}

            //string browser = HttpContext.Request.Browser.Browser;
            //string user_agent = HttpContext.Request.UserAgent;
            //string url = HttpContext.Request.RawUrl;
            //string ip = HttpContext.Request.UserHostAddress;
            //string sadasdid = HttpContext.Request.Cookies["iin"].Value;

            QuizResult res = new QuizResult();

            res.name = a.qt;

            res.testXml   = a.dr;
            res.userPoint = Convert.ToDecimal(a.sp);
            Serialaizble serial = new Serialaizble();

            QuizResultXmlObject.quizReport serialObject = serial.DeSerialize <QuizResultXmlObject.quizReport>(a.dr);
            res.userTime = (serialObject.summary.time).ToString();
            res.maxTime  = serialObject.quizSettings.timeLimit.ToString();
            res.maxPoint = Convert.ToDecimal(serialObject.quizSettings.maxScore);

            using (DiplomDB db = new DiplomDB())
            {
                var    cookie = Request.Cookies["iin"];
                Tester tester = db.Testers.FirstOrDefault(p => p.iin == "970319300858");
                tester.resultQuizID = 1;
                //var aqq = (from u in db.Testers.ToList() where u.email == a.COMPANY select u.id).FirstOrDefault();
                res.testerID = tester.id;
                //var iddd = (from u in db.Testers.ToList() where u.email == a.COMPANY select u.id).FirstOrDefault();
                var id = db.QuizResults.Max(quizrez => quizrez.id);
                res.id         = id + 1;
                res.testerDate = DateTime.Today;
                db.QuizResults.Add(res);
                db.SaveChanges();
                int iddd = res.id;
                //HttpCookie cookie_quiz = new HttpCookie("QuizResultId", iddd.ToString());
                //Response.SetCookie(cookie_quiz);
            }
            //  Response.Redirect(Url.Action("TestResultView", "Home", new { quiz = serialObject, email = a.COMPANY }));
            //return RedirectToAction("TestResultView", "Home", new { quiz = serialObject, email = a.COMPANY });

            return(Json("bake"));
        }