Example #1
0
 internal static QuizWithTags MapFrom(QuizEntity quiz)
 => new QuizWithTags
 {
     Id    = quiz.Id,
     Title = quiz.Title,
     Tags  = quiz.QuizTags.Select(qt => qt.Tag.Name)
 };
Example #2
0
        public async Task When_AddMethodIsCalledWithValidParameter_Then_ShouldReturnCreatedAt()
        {
            // Arrange
            CreateQuizModel entity = new CreateQuizModel
            {
                Name        = "valid name",
                Description = "valid description",
                Questions   = new List <CreateQuestionModel>
                {
                    new CreateQuestionModel()
                },
                IsRanked = false
            };

            var quizEntity = new QuizEntity
            {
                QuizCreatorId = Guid.NewGuid()
            };

            var quizModel = new QuizModel
            {
            };

            AddQuizMocking(quizEntity, quizModel);

            // Act
            var result = await SystemUnderTest.AddQuiz(entity);

            // Assert
            result.Should().BeOfType <CreatedAtRouteResult>();
            _mockQuizService.Verify(x => x.CreateAsync(It.IsAny <QuizEntity>()), Times.Exactly(1));
            _mockQuizService.Verify(x => x.GetQuizAsync(It.IsAny <Guid>()), Times.Exactly(1));
        }
Example #3
0
        public string QuizValidity(string QuizName, long?QuizId)
        {
            QuizEntity Quiz = new QuizEntity();

            if (QuizId != null)
            {
                Quiz = db.tblQuizs.Where(x => x.QuizName.ToLower() == QuizName.ToLower() && x.QuizId != QuizId).Select(x => new QuizEntity()
                {
                    QuizName = x.QuizName,
                }).FirstOrDefault();
            }
            else
            {
                Quiz = db.tblQuizs.Where(x => x.QuizName.ToLower() == QuizName.ToLower()).Select(x => new QuizEntity()
                {
                    QuizName = x.QuizName,
                }).FirstOrDefault();
            }

            List <QuizEntity> usrList = new List <QuizEntity>();

            //var Usr = usrList.FirstOrDefault(x => x.QuizName.ToLower() == QuizName.ToLower());
            if (Quiz != null)
            {
                return("Quiz already exist.");
            }
            else
            {
                return("Success");
            }
        }
        public ActionResult DeleteQuiz(long id)
        {
            try
            {
                QuizFactory DeleteQuiz = new QuizFactory();
                QuizEntity  Quiz       = new QuizEntity();
                Quiz = DeleteQuiz.GetQuizById(id);

                DataLayer.tblQuiz NewQuiz = new DataLayer.tblQuiz();
                NewQuiz.QuizId = id;

                NewQuiz.QuizName    = Quiz.QuizName;
                NewQuiz.CreatedDate = Quiz.CreatedDate;
                NewQuiz.CreatedBy   = Quiz.CreatedBy;
                NewQuiz.UpdatedDate = DateTime.Now;
                NewQuiz.UpdatedBy   = null;
                NewQuiz.IsActive    = false; // IsActive will be false in delete record

                DeleteQuiz.SaveQuiz(NewQuiz);

                return(RedirectToAction("Quiz"));
            }
            catch
            {
                return(View());
            }
        }
Example #5
0
        public async Task When_UpdateMethodIsCalledWithNoAuthorization_Then_ShouldReturnUnauthorizedResult()
        {
            // Arrange
            UpdateQuizModel entity = new UpdateQuizModel
            {
                Id          = new Guid(),
                Name        = "valid name",
                Description = "valid description",
                Questions   = new List <CreateQuestionModel>
                {
                    new CreateQuestionModel()
                },
                IsRanked = false
            };

            var quizEntity = new QuizEntity
            {
                QuizCreatorId = Guid.NewGuid()
            };

            UpdateQuizMocking(quizEntity);

            // Act
            var result = await SystemUnderTest.UpdateQuiz(entity.Id, entity);

            // Assert
            result.Should().BeOfType <UnauthorizedResult>();
        }
Example #6
0
    public override void Init(params object[] args)
    {
        Debug.Log("init quiz");

        CurrentQuiz = GameControllerLevel2.Instance.QuizGame.GetQuest();
        if (CurrentQuiz != null)
        {
            NumberQLabel.text = CurrentQuiz.Id.ToString();

            QLabel.text = CurrentQuiz.Question;

            Button1.SetActive(!string.IsNullOrEmpty(CurrentQuiz.Answer1));
            Button2.SetActive(!string.IsNullOrEmpty(CurrentQuiz.Answer2));
            Button3.SetActive(!string.IsNullOrEmpty(CurrentQuiz.Answer3));

            V1Label.text = CurrentQuiz.Answer1;
            V2Label.text = CurrentQuiz.Answer2;
            V3Label.text = CurrentQuiz.Answer3;
        }
        else
        {
            Debug.Log("Вопросы кончились");
            Close();
        }
    }
Example #7
0
        public async Task When_DeleteQuizMethodIsCalledCorrectly_Then_ShouldReturnNoContentResult()
        {
            // Arrange
            var quizEntity = new QuizEntity
            {
                QuizCreatorId = Guid.NewGuid()
            };

            _mockMapper.Setup(x => x.Map <QuizModel>(It.IsAny <QuizEntity>()))
            .Returns(It.IsAny <QuizModel>);

            _mockQuizService.Setup(x => x.GetQuizAsync(quizEntity.QuizCreatorId))
            .Returns(Task.FromResult(quizEntity));
            _mockQuizService.Setup(x => x.DeleteAsync(quizEntity.QuizCreatorId))
            .Returns(Task.CompletedTask);

            _mockUserValidation.Setup(x => x.GetUserIdFromClaims(It.IsAny <HttpContext>())).Returns(quizEntity.QuizCreatorId);

            // Act
            var result = await SystemUnderTest.DeleteQuiz(quizEntity.QuizCreatorId);

            // Assert
            result.Should().BeOfType <NoContentResult>();
            _mockQuizService.Verify(x => x.GetQuizAsync(It.IsAny <Guid>()), Times.Exactly(1));
            _mockQuizService.Verify(x => x.DeleteAsync(It.IsAny <Guid>()), Times.Exactly(1));
        }
Example #8
0
        public async Task When_UpdateMethodIsCalledWithValidParameter_Then_ShouldReturnNoContent()
        {
            // Arrange
            UpdateQuizModel entity = new UpdateQuizModel
            {
                Id          = new Guid(),
                Name        = "valid name",
                Description = "valid description",
                Questions   = new List <CreateQuestionModel>
                {
                    new CreateQuestionModel()
                },
                IsRanked = false
            };

            var quizEntity = new QuizEntity
            {
                QuizCreatorId = Guid.NewGuid()
            };

            UpdateQuizMocking(quizEntity);

            _mockUserValidation.Setup(x => x.GetUserIdFromClaims(It.IsAny <HttpContext>())).Returns(quizEntity.QuizCreatorId);

            // Act
            var result = await SystemUnderTest.UpdateQuiz(entity.Id, entity);

            // Assert
            result.Should().BeOfType <NoContentResult>();
            _mockQuizService.Verify(x => x.UpdateAsync(It.IsAny <QuizEntity>()), Times.Exactly(1));
            _mockQuizService.Verify(x => x.GetQuizAsync(It.IsAny <Guid>()), Times.Exactly(1));
        }
Example #9
0
 /// <summary>
 /// セレクト問題の初期化を行います。
 /// </summary>
 public override void Initialize(QuizEntity quiz)
 {
     for (int i = 0; i < choiceObjects.Length; i++)
     {
         choiceObjects[i].Answer = quiz.Choices[i];
     }
 }
Example #10
0
        public void ViewSentence(QuizEntity quiz, ref int count)
        {
            if (isWaiting)
            {
                return;
            }

            count++;
            if (count > quiz.Sentence.Length)
            {
                return;
            }

            // 改行が登場したら1秒ウェイト
            int lastIndex = quiz.Sentence.Substring(0, count).LastIndexOf('\n');

            if (lastIndex + 1 == count)
            {
                isWaiting = true;
                Observable.ReturnUnit().Delay(TimeSpan.FromSeconds(1)).Subscribe(_ => {
                    isWaiting = false;
                }).AddTo(this);
            }
            SentenceText.text = quiz.Sentence.Substring(0, count);
        }
        // GET: Quiz/Edit/5
        public ActionResult EditQuiz(int id)
        {
            QuizFactory EditQuiz = new QuizFactory();
            QuizEntity  quiz     = new QuizEntity();

            quiz = EditQuiz.GetQuizById(id);
            return(View(quiz));
        }
Example #12
0
        ///<summary>
        ///Ativa questionário
        /// </summary>
        public void Activating(int id)
        {
            QuizRepository repository = new QuizRepository();
            QuizEntity     quiz       = repository.GetById(id);

            quiz.status = true;
            repository.update(quiz);
        }
        public ActionResult DeleteQuiz(int id)
        {
            QuizFactory EditQuiz = new QuizFactory();
            QuizEntity  channel  = new QuizEntity();

            channel = EditQuiz.GetQuizById(id);
            return(View(channel));
        }
Example #14
0
        public ActionResult Save(QuizEntity entity)
        {
            try
            {
                using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required))
                {
                    if (ModelState.IsValid)
                    {
                        if (entity.Name == null)
                        {
                            //return Json(new { status = "warn", message = "O campo nome é obrigatório!" });
                            ModelState.AddModelError("", "Alguns campos são obrigatórios para salvar o Questionário.");
                            return(PartialView("_Edit", entity));
                        }
                        if (entity.Id == 0)
                        {
                            QuizService service = QuizService.Instance;
                            entity.InitialDate = DateTime.Now;
                            entity.CreatedBy   = CurrentUserEmail;
                            entity.LastUpdate  = DateTime.Now;
                            entity.FirmId      = CurrentFirm.Id;
                            entity.status      = true;
                            service.Create(entity);
                            Success("Questionário cadastrado com sucesso.");
                            scope.Complete();

                            // return Json(new { status = "sucess", message = "Registro cadastrado com sucesso!" });
                        }
                        else
                        {
                            QuizService service = QuizService.Instance;
                            entity.LastUpdate = DateTime.Now;
                            entity.status     = true;
                            entity.UpdatedBy  = CurrentUserEmail;
                            entity.FirmId     = CurrentFirm.Id;
                            service.Update(entity);
                            Success("Questionário atualizado com sucesso.");
                            scope.Complete();
                            // return Json(new { status = "sucess", message = "Registro atualizado com sucesso!" });
                        }
                    }
                    else
                    {
                        ModelState.AddModelError("", "Alguns campos são obrigatórios para salvar o questionário.");
                        return(PartialView("_Edit", entity));
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.LogException(ex);

                //return Json(new { status = "error", message = "Ocorreu um problema!" });
                ModelState.AddModelError("", "Ocorreu um problema!");
                return(PartialView("_Edit", entity));
            }
            return(new EmptyResult());
        }
Example #15
0
        public void UpdateQuizMocking(QuizEntity quizEntity)
        {
            _mockMapper.Setup(x => x.Map <QuizEntity>(It.IsAny <CreateQuizModel>()))
            .Returns(quizEntity);

            _mockQuizService.Setup(x => x.GetQuizAsync(It.IsAny <Guid>()))
            .Returns(Task.FromResult(quizEntity));
            _mockQuizService.Setup(x => x.UpdateAsync(quizEntity))
            .Returns(Task.CompletedTask);
        }
Example #16
0
        private Result Insert(QuizEntity entity, DapperConnectionManager con)
        {
            var query = new QueryEntity();

            query.Entity = entity;
            query.Query  = @"INSERT INTO Quizzes (Name, Type , DomainId) VALUES(@Name, @Type , @DomainId)";
            var result = con.InsertQuery(query);

            return(result);
        }
Example #17
0
        /// <summary>
        /// クイズをリセットする
        /// </summary>
        public void Reset(QuizEntity quiz)
        {
            // すべてのパネルを非表示に
            AnswerPanelList.ForEach(p => p.gameObject.SetActive(false));

            // 出題に使用したパネルを初期状態へ
            var panel = AnswerPanelList.Find(p => p.format == quiz.Format);

            panel.Reset();
        }
Example #18
0
        public async Task UpdateAsync(QuizEntity quiz)
        {
            Guard.ArgumentNotNull(quiz, nameof(quiz));

            var insertedQuiz = await _repository.GetByIdAsync(quiz.Id).ConfigureAwait(false);

            if (insertedQuiz != null)
            {
                await _repository.UpdateAsync(quiz).ConfigureAwait(false);
            }
        }
Example #19
0
        public async Task When_CallAddQuizAndTheQuizIsNotPresentInTheDatabase_Then_ShouldCreate()
        {
            // Arrange
            var entity = new QuizEntity();

            // Act
            await SystemUnderTest.CreateAsync(entity);

            // Assert
            _mockQuizRepository.Verify(x => x.AddAsync(It.IsAny <QuizEntity>()), Times.Once);
        }
Example #20
0
        /// <summary>
        /// 初期化を行います。
        /// </summary>
        public override void Initialize(QuizEntity quiz)
        {
            Reset();

            var answer = quiz.CorrectAnswer;

            for (int i = 0; i < quiz.CorrectAnswer.Length; i++)
            {
                var reelStr = new string(quiz.Choices.Select(x => x[i]).OrderBy(_ => Guid.NewGuid()).ToArray());
                var reel    = reels[i];
                reel.SetReelStr(reelStr);
            }
        }
Example #21
0
        public Result GetQuizByType(QuizTypes type)
        {
            var con    = new DapperConnectionManager();
            var query  = new QueryEntity();
            var result = new Result();

            //ASSeSSMENT QUIZZES GET BY DOMAIN NO TYPE
            if (QuizTypes.ASSESSMENT == type)
            {
                result.Success = false;
                return(result);
            }

            query.Query  = @"SELECT * FROM Quizzes
                            where Type = @Type";
            query.Entity = new { Type = type.ToString() };

            result = con.ExecuteQuery <QuizEntity>(query);

            if (!result.Success)
            {
                result.Message = "An error occurred";
                return(result);
            }

            var r = (IEnumerable <QuizEntity>)result.Entity;

            var quiz = r.FirstOrDefault();

            if (quiz == null)
            {
                //new quiz needs to be inserted
                quiz = new QuizEntity
                {
                    Name = type.ToString(),
                    Type = type.ToString()
                };
                result = Insert(quiz, con);
            }
            else
            {
                var resultQ = GetQuestionsByQuiz(quiz.QuizId, con);
                if (!resultQ.Success)
                {
                    return(resultQ);
                }
                quiz.Questions = (List <QuestionEntity>)resultQ.Entity;
            }
            result.Entity = quiz;
            return(result);
        }
Example #22
0
        /// <summary>
        /// クイズを出題する
        /// </summary>
        public void StartQuiz(QuizEntity quiz)
        {
            // パネルの初期化
            var panel = AnswerPanelList.Find(p => p.format == quiz.Format);

            if (panel == null)
            {
                GeLogger.Error($"not found panel. format = {quiz.Format}");
                return;
            }
            panel.Initialize(quiz);

            // 出題パネルの表示
            AnswerPanelList.ForEach(p => p.gameObject.SetActive(p.format == quiz.Format));
        }
Example #23
0
        /// <summary>
        /// 初期化を行います。
        /// </summary>
        public override void Initialize(QuizEntity quiz)
        {
            Reset();

            for (int i = 0; i < quiz.Choices.Count; i++)
            {
                choiceObjects[i].Answer = quiz.Choices[i];
                choiceObjects[i].gameObject.SetActive(true);
            }

            for (int i = quiz.Choices.Count; i < choiceObjects.Length; i++)
            {
                choiceObjects[i].gameObject.SetActive(false);
            }
        }
        public QuizEntity GetQuizById(long Id)
        {
            QuizEntity Quiz = new QuizEntity();

            Quiz = db.tblQuizs.Where(x => x.QuizId == Id).Select(x => new QuizEntity()
            {
                QuizName    = x.QuizName,
                CreatedBy   = x.CreatedBy,
                CreatedDate = x.CreatedDate,
                UpdatedBy   = x.UpdatedBy,
                UpdatedDate = x.UpdatedDate,
                IsActive    = x.IsActive
            }).FirstOrDefault();
            return(Quiz);
        }
Example #25
0
        public async Task When_CallDeleteQuizByIdAndTheQuizIsInDataBase_Then_ShouldDeleteTheQuizAsync()
        {
            // Arrange
            var entity = new QuizEntity();

            //-- nu merge sa returnezze entitatea.--
            _mockQuizRepository.Setup(x => x.GetByIdAsync(entity.Id)).Returns(Task.FromResult(entity));

            // Act
            // var result = await SystemUnderTest.CreateAsync(entity);
            await SystemUnderTest.DeleteAsync(entity.Id);

            // Assert
            _mockQuizRepository.Verify(x => x.GetByIdAsync(It.IsAny <Guid>()), Times.AtMost(1));
            _mockQuizRepository.Verify(x => x.DeleteAsync(It.IsAny <Guid>()), Times.Once);
        }
Example #26
0
        public async Task When_GetQuizByIdMethodIsCalledWithDifferentUserId_Then_ShouldReturnUnauthorizedResult()
        {
            // Arrange
            var quizEntity = new QuizEntity
            {
                QuizCreatorId = Guid.NewGuid()
            };

            _mockQuizService.Setup(x => x.GetQuizAsync(quizEntity.QuizCreatorId))
            .Returns(Task.FromResult(quizEntity));

            // Act
            var result = await SystemUnderTest.GetQuizById(quizEntity.QuizCreatorId);

            // Assert
            result.Should().BeOfType <UnauthorizedResult>();
        }
Example #27
0
        /// <summary>
        /// 並べ替え問題の初期化を行います。
        /// </summary>
        public override void Initialize(QuizEntity quiz)
        {
            var shuffleAnswer = quiz.CorrectAnswer.Shuffle();

            for (int i = 0; i < shuffleAnswer.Length; i++)
            {
                var choiceObject = choiceObjects[i];
                choiceObject.Answer = $"{shuffleAnswer[i]}";
                choiceObject.gameObject.SetActive(true);
            }

            for (int i = shuffleAnswer.Length; i < choiceObjects.Count; i++)
            {
                var choiceObject = choiceObjects[i];
                choiceObject.Answer = string.Empty;
                choiceObject.gameObject.SetActive(false);
            }
        }
Example #28
0
        /// <summary>
        /// 初期化を行います。
        /// </summary>
        public override void Initialize(QuizEntity quiz)
        {
            base.Initialize(quiz);

            disposable = new CompositeDisposable();

            // 選択肢をエフェクト代わりに使用
            EffectText.text = quiz.Choices[0];

            var elapsedTime = 0.0f;

            this.UpdateAsObservable().Subscribe(_ => {
                elapsedTime += Time.deltaTime;

                // 時間経過によるスケール変化
                var value = Mathf.Lerp(EndScale, DefaultScale, 1 - elapsedTime / (QuizConfig.LimitSeconds - EndAnimationSecond));
                EffectText.transform.localScale = new Vector3(value, value);
            }).AddTo(disposable);
        }
Example #29
0
        public ActionResult SaveQuiz([FromForm] int quizId, [FromForm] string quizName, [FromForm] string quizIntro, [FromForm] string quizJson)
        {
            var quizObj = new QuizEntity();

            int.TryParse(Request.Cookies["id"], out int creator);
            quizObj.QuizBody    = quizJson;
            quizObj.QuizName    = quizName;
            quizObj.QuizIntro   = quizIntro;
            quizObj.QuizCreator = creator;
            quizObj.QuizLikes   = new List <string>();
            dbc.Quiz.Add(quizObj);
            if (quizId > 0)
            {
                var prevQues = dbc.Quiz.Find(quizId);
                prevQues.QuizIsDeleted = true;
                dbc.Quiz.Update(prevQues);
            }
            dbc.SaveChanges();
            return(JsonReturn.ReturnSuccess());
        }
Example #30
0
        /// <summary>
        /// 初期化を行います。
        /// </summary>
        public override void Initialize(QuizEntity quiz)
        {
            Reset();

            var answer = quiz.CorrectAnswer;

            for (int i = 0; i < quiz.CorrectAnswer.Length; i++)
            {
                var tile = tiles[i];
                tile.gameObject.SetActive(true);
            }

            var dummies = quiz.Choices[0];

            for (int i = 0; i < dummies.Length; i++)
            {
                var panel = panels[i];
                panel.Answer = $"{dummies[i]}";
                panel.gameObject.SetActive(true);
            }
        }
Example #31
0
        /// <summary>
        /// 初期化を行います。
        /// </summary>
        public override void Initialize(QuizEntity quiz)
        {
            Reset();

            var countOfChoices = quiz.Choices.Count / 2;
            var leftChoices    = quiz.Choices.Take(countOfChoices).ToList();
            var rightChoices   = quiz.Choices.Skip(countOfChoices).ToList();

            for (int i = 0; i < lefts.Count && i < leftChoices.Count; i++)
            {
                var left = lefts[i];
                left.Answer = leftChoices[i];
                left.gameObject.SetActive(true);
            }

            for (int i = 0; i < rights.Count && i < rightChoices.Count; i++)
            {
                var right = rights[i];
                right.Answer = rightChoices[i];
                right.gameObject.SetActive(true);
            }
        }
Example #32
0
 internal void SetAnswer(QuizEntity CurrentQuiz, bool isTrue)
 {
     if (isTrue)
     {
         ProgressBar += 0.1f;
         GameControllerLevel2.Instance.Score += GameConst.ScoreTrueAnswer;
         CurrentQuiz.IsTrue = true;
     }
     else
     {
         ProgressBar -= 0.1f;
         CurrentQuiz.IsTrue = false;
     }
 }