Exemple #1
0
        public CreateQuizViewModel CreateQuizViewModelFromQuizDTO(QuizDTO quiz)
        {
            CreateQuizViewModel viewModel = new CreateQuizViewModel();

            viewModel.Id          = quiz.Id;
            viewModel.Description = quiz.Description;
            viewModel.Title       = quiz.Title;
            viewModel.Path        = quiz.FilePath;
            int i = 0;

            foreach (var q in quiz.Questions)
            {
                CreateQuestionViewModel questionViewModel = new CreateQuestionViewModel();
                questionViewModel.Question = q.Question;
                int j = 0;
                foreach (var a in quiz.Questions[i].Answers)
                {
                    CreateAnswerViewModel answerViewModel = new CreateAnswerViewModel();
                    questionViewModel.Answers.Add(answerViewModel);
                    questionViewModel.Answers[j].Answer    = a.Answer;
                    questionViewModel.Answers[j].isCorrect = a.isCorrect;
                    j++;
                }
                i++;
            }


            return(viewModel);
        }
Exemple #2
0
        public ActionResult Create(CreateQuizViewModel jsonQuiz)
        {
            //if everything is valid with the passed in data
            if (ModelState.IsValid)
            {
                //get a model quiz object from view model
                var quiz = jsonQuiz.GetQuiz();
                var user = _userService.GetUser(User.Identity.Name);

                if (user == null)
                {
                    return(Json(new SimpleJsonMessageViewModel("Корисникот не е најавен", 1, 0, false)));
                }

                quiz.TeacherId = user.UserID;

                var result = _teacherQuizesService.CreateFullQuiz(quiz);

                if (result.IsOK)
                {
                    return(Json(new SimpleJsonMessageViewModel("Успешно креиран квиз", 0, 0, true)));
                }
                else
                {
                    return(Json(new SimpleJsonMessageViewModel("Неуспешно зачуван тест. Обиди се повторно", 3, 0, false)));
                }
            }
            else
            {
                // the sent model does not pass model validation
                return(Json(new SimpleJsonMessageViewModel("Погрешно внесени податоци. Обиди се повторно", 2, 0, false)));
            }
        }
        public ActionResult Create(CreateQuizViewModel vm)
        {
            if (ModelState.IsValid)
            {
                if (_quizService.Exists(vm.Quiz.Name))
                {
                    ModelState.AddModelError("Name", "Name already exists");
                    return(View("Create", vm));
                }

                if (!String.IsNullOrEmpty(vm.NewCategory))
                {
                    if (_quizCategoryService.Exists(vm.NewCategory))
                    {
                        ModelState.AddModelError("NewCategory", "Category already exists");

                        return(View("Create", vm));
                    }
                }

                var quiz = vm.ToModel(_quizCategoryService);
                quiz.CreatedBy = User.Identity.Name;

                _quizService.Insert(quiz);


                return(RedirectToAction("Edit", new { id = quiz.Id }));
            }

            return(View("Create", vm));
        }
        public JsonResult Create([FromBody] CreateQuizViewModel quizViewModel)
        {
            TempData.Remove("QuizInCreation");
            var user = this.userMapper.CreateUserWithId(userId);
            var quiz = quizDTOMapperFromViewModel.Map(quizViewModel, user);

            quizService.CreateQuiz(quiz);
            return(Json(new { status = "OK" }));
        }
Exemple #5
0
        public static CreateQuizViewModel ToCreateQuizViewModel(this Quiz quiz, IQuizCategoryService categories, string userName)
        {
            var vm = new CreateQuizViewModel();

            vm.Categories     = categories.GetCategoriesAsSelectList();
            vm.Quiz           = new QuizViewModel();
            vm.Quiz.CreatedBy = userName;

            return(vm);
        }
        public CreateQuizViewModel ToCreateQuizViewModel(Quiz quiz, string userName)
        {
            var vm = new CreateQuizViewModel();

            vm.Categories     = _quizCategorytService.GetCategoriesAsSelectList();
            vm.Quiz           = new QuizViewModel();
            vm.Quiz.CreatedBy = userName;

            return(vm);
        }
        public IActionResult Create(CreateQuizViewModel model)
        {
//			if (ModelState.IsValid)
//			{
            foreach (var i in Request.Form)
            {
                System.Console.WriteLine(i.Value.ToString());
            }
//			}
            return(View());
        }
        /// <summary>
        /// Выполняет трансляцию DTO в модель создания теста.
        /// </summary>
        /// <param name="dto">DTO-объект теста.</param>
        /// <returns>Модель с описанием теста.</returns>
        private CreateQuizViewModel TranslateCreateQuizModel(QuizDto dto)
        {
            var model = new CreateQuizViewModel
            {
                Title              = dto.Title,
                TotalTimeSecs      = dto.TotalTimeSecs,
                MaxQuizBlocksCount = dto.MaxQuizBlocksCount,
                QuizBlocks         = dto.QuizBlocks.Select(TranslateQuizBlockModel).ToList()
            };

            return(model);
        }
        /// <summary>
        /// Выполняет трансляцию модели создания теста в DTO.
        /// </summary>
        /// <param name="model">Модель с описанием теста.</param>
        /// <returns>DTO-объект теста.</returns>
        private QuizDto TranslateCreateQuizModel(CreateQuizViewModel model)
        {
            var dto = new QuizDto
            {
                Title              = model.Title,
                TotalTimeSecs      = model.TotalTimeSecs,
                MaxQuizBlocksCount = model.MaxQuizBlocksCount,
                QuizBlocks         = model.QuizBlocks.Select(TranslateQuizBlockModel).ToList()
            };

            return(dto);
        }
Exemple #10
0
        public ActionResult Save(CreateQuizViewModel model)
        {
            UserAns obj = new UserAns
            {
                UserId     = model.UserId,
                QuestionId = model.question.Id,
                Answer     = model.answer
            };

            _context.UserAns.Add(obj);
            _context.SaveChanges();
            return(RedirectToAction("CreateQuiz", new { uid = model.UserId, id = ++model.question.Id }));
        }
Exemple #11
0
        public async Task <IActionResult> CreateQuiz(CreateQuizViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                var createQuiz = await _quizService.AddNewQuizAsync(viewModel.Name, viewModel.MaxTeams, viewModel.StartTime);

                if (createQuiz != null)
                {
                    return(RedirectToAction("Rounds", new { quizId = createQuiz }));
                }
            }

            return(View(viewModel));
        }
        public CreateQuizViewModelTest()
        {
            _quizzes = GenerateQuizzesList();

            _quizServiceMock = new Mock <IQuizService>();
            _quizServiceMock.Setup(qS => qS.GetAllQuizzes()).ReturnsAsync(_quizzes);
            _quizServiceMock.Setup(qS => qS.AddQuiz(It.IsAny <Quiz>())).ReturnsAsync(true);
            _navigationServiceExMock = new Mock <INavigationServiceEx>();
            _navigationServiceExMock.Setup(nS => nS.Navigate(It.IsAny <string>(), It.IsAny <object>(), It.IsAny <NavigationTransitionInfo>())).Returns(true);

            _sender = new QuizzenViewModel(_quizServiceMock.Object, _navigationServiceExMock.Object);
            _sender.CreateQuizCommand.Execute(null);
            _sut = new CreateQuizViewModel(_quizServiceMock.Object, _navigationServiceExMock.Object);
        }
        public ActionResult Edit([FromBody] CreateQuizViewModel quizViewModel)
        {
            TempData.Remove("QuizInCreation");
            var     userId  = this.User.FindFirstValue(ClaimTypes.NameIdentifier);//
            var     user    = this.userMapper.CreateUserWithId(userId);
            QuizDTO quizDTO = this.quizDTOMapperFromViewModel.Map(quizViewModel, user);

            if (quizDTO.ApplicationUserId == null)  //
            {
                quizDTO.ApplicationUserId = userId; //TE LINIE MOGA BYC DO WYWALENIA
            }
            quizDTO.FilePath = quizDTO.FilePath;
            quizService.SaveQuiz(quizDTO);
            return(Json(new { status = "OK" }));
        }
Exemple #14
0
        public IActionResult CreateQuiz(CreateQuizViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            List <Question> questions = new List <Question>();
            Quiz            newQuiz   = new Quiz
            {
                Title       = model.Title,
                Description = model.Description
            };

            _repo.SaveQuiz(newQuiz);

            return(RedirectToAction(nameof(Index)));
        }
        public ViewResult Create()
        {
            CreateQuizViewModel model = null;

            if (TempData.Peek("QuizInCreation") != null)
            {
                string fromTemp = (string)TempData["QuizInCreation"];
                model = JsonConvert.DeserializeObject <CreateQuizViewModel>(fromTemp);
            }
            else
            {
                model = new CreateQuizViewModel();
            }

            TempData["QuizInCreation"] = JsonConvert.SerializeObject(model);
            return(View("Create", model));
        }
Exemple #16
0
        public async Task <IActionResult> CreateQuizResult([FromBody] CreateQuizViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            int userId = Convert.ToInt32(User.Claims.FirstOrDefault(x => x.Type == ClaimTypes.Sid).Value);

            var result = await _quizService.CreateQuiz(viewModel, userId);

            if (result.IsError)
            {
                return(BadRequest(result));
            }

            return(Ok(result));
        }
Exemple #17
0
        public IActionResult CreateQuiz(CreateQuizViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            Quiz newQuiz = new Quiz
            {
                Name        = model.Title,
                Description = model.Description
            };

            _context.Quizes.Add(newQuiz);
            _context.SaveChanges();

            return(RedirectToAction(nameof(Index)));
        }
Exemple #18
0
        public ActionResult CreateQuiz(int uid, int id = 1)
        {
            User user = _context.Users.Single(m => m.Id == uid);

            try
            {
                CreateQuizViewModel obj = new CreateQuizViewModel
                {
                    question = _context.Questions.Single(c => c.Id == id),
                    UserId   = uid
                };
                obj.question.question = String.Format(obj.question.question, user.Username);
                return(View(obj));
            }
            catch (Exception e)
            {
                return(View("QuizCreated", user));
            }
        }
        public ViewResult Edit(string Id)
        {
            CreateQuizViewModel model = null;

            if (TempData.Peek("QuizInCreation") != null)
            {
                string fromTemp = (string)TempData["QuizInCreation"];
                model = JsonConvert.DeserializeObject <CreateQuizViewModel>(fromTemp);
            }
            else
            {
                model = new CreateQuizViewModel();
                QuizDTO quizDTO = quizService.Quizes.FirstOrDefault(p => p.Id.Equals(Id));
                model = quizDTOMapperFromViewModel.CreateQuizViewModelFromQuizDTO(quizDTO);
            }

            TempData["QuizInCreation"] = JsonConvert.SerializeObject(model);
            return(View(model));
        }
Exemple #20
0
        public void Create(CreateQuizViewModel vm)
        {
            using (var trs = transactionScopeProvider.CreateTransactionScope())
            {
                var user  = GetCurrentUser();
                var quest = questService.CreateQuest(
                    name: vm.Quest.name,
                    desc: vm.Quest.description,
                    dueDate: vm.Quest.dueDate,
                    latitude: vm.Quest.Latitude,
                    longitude: vm.Quest.Longitude,
                    points: 0, //will be calcualted
                    questType: (int)QuestTypeEnum.Quiz,
                    scenarioID: vm.Quest.scenarioId);

                var quiz = quizService.CreateQuiz(quest, vm.Questions);

                trs.Complete();
            }
        }
        public PartialViewResult AddAnswer([FromBody] CreateQuizViewModel model)
        {
            if (model.Questions.Count == 0)
            {
                model.Questions.Add(new CreateQuestionViewModel());
            }

            int addedToQuestionIndex = 0;

            for (int i = 0; i < model.Questions.Count; i++)
            {
                if (model.Questions[i].NewAnswerRequested)
                {
                    model.Questions[i].Answers.Add(new CreateAnswerViewModel());
                    addedToQuestionIndex = i;
                }
            }
            TempData["QuizInCreation"] = JsonConvert.SerializeObject(model);
            return(PartialView("AnswersPartialView", model.Questions[addedToQuestionIndex]));
        }
Exemple #22
0
        public QuizDTO Map(CreateQuizViewModel viewmodel, ApplicationUserDTO user)
        {
            QuizDTO dto = new QuizDTO(quizEntityMapper.AddNewQuiz)
            {
                Id                = viewmodel.Id,
                Description       = viewmodel.Description,
                Title             = viewmodel.Title,
                ApplicationUserId = user.Id,
                ApplicationUser   = user,
                FilePath          = viewmodel.Path,
                QuizType          = viewmodel.QuizType,
                QuizAccessLevel   = viewmodel.QuizAccessLevel,
                //CreationDate = DateTime.Today.ToString(QuizDTO.CreationDateFormat),
                CreationDate = DateTime.Today
            };

            foreach (var question in viewmodel.Questions)
            {
                dto.Questions.Add(DTOMapper.Map(question));
            }
            return(dto);
        }
        public static Quiz ToModel(this CreateQuizViewModel vm, IQuizCategoryService categories)
        {
            var model = new Quiz();

            if (!String.IsNullOrEmpty(vm.NewCategory))
            {
                model.Category = categories.InsertByName(vm.NewCategory);
            }
            else
            {
                model.Category = categories.Get(vm.SelectedCategory);
            }

            model.IsTimeable  = vm.Quiz.IsTimeable;
            model.Locked      = vm.Quiz.Locked;
            model.Summary     = vm.Quiz.Summary;
            model.Name        = vm.Quiz.Name;
            model.Created     = DateTime.Now;
            model.AllowPoints = vm.Quiz.AllowPoints;


            return(model);
        }
        public async Task <IActionResult> CreateQuiz(CreateQuizViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var quizDto     = TranslateCreateQuizModel(model);
            var currentUser = await _userManager.GetUserAsync(HttpContext.User).ConfigureAwait(false);

            if (currentUser == null)
            {
                ModelState.AddModelError("UnknownUser", "Невозможно определить пользователя в этой сессии");
                return(View(model));
            }

            quizDto.Creator = currentUser;

            await _dbContext.Quizzes.AddAsync(quizDto).ConfigureAwait(false);

            await _dbContext.SaveChangesAsync().ConfigureAwait(false);

            return(RedirectToAction("ShowList"));
        }
Exemple #25
0
        public IActionResult CreateQuiz()
        {
            var viewModel = new CreateQuizViewModel();

            return(View(viewModel));
        }
 public Command_Remove_Question(CreateQuizViewModel vModel)
 {
     this.vModel = vModel;
 }
Exemple #27
0
 public Command_Save_Quiz(CreateQuizViewModel vModel)
 {
     this.vModel = vModel;
 }
 public PartialViewResult AddQuestion([FromBody] CreateQuizViewModel model)
 {
     model.Questions.Add(new CreateQuestionViewModel());
     TempData["QuizInCreation"] = JsonConvert.SerializeObject(model);
     return(PartialView("QuestionsPartialView", model));
 }
Exemple #29
0
        public async Task <ResultDto <CreateQuizDto> > CreateQuiz(CreateQuizViewModel viewModel, int userId)
        {
            var result    = new ResultDto <CreateQuizDto>();
            var questions = _mapper.Map <List <QuestionViewModel>, List <Question> >(viewModel.Questions);

            double effectiveness = CalculatePercentageRate(viewModel.NumberOfPositiveRates, viewModel.NumberOfNegativeRates);

            var quiz = _mapper.Map <Quiz>(viewModel);

            quiz.PointsForGame      = CalculatePointsForEveryQuestion(questions, viewModel.QuizType);
            quiz.SecondsSpendOnQuiz = Math.Round(viewModel.Questions.Sum(x => x.TimeForAnswerInSeconds), 2);
            quiz.UserId             = userId; quiz.RateInNumber = effectiveness;
            var insertedQuiz = await _quizRepository.InsertAndReturnObject(quiz);

            if (insertedQuiz == null)
            {
                result.Errors.Add("Wystapił błąd podczas dodawania wyniku do twojej historii. Ta gra nie zostanie uznana");
                return(result);
            }

            foreach (var question in questions)
            {
                question.QuizId = insertedQuiz.Id;
            }

            int isQuestionsInserted = await _questionRepository.InsertList(questions);

            if (isQuestionsInserted == 0)
            {
                result.Errors.Add("Wystapił błąd podczas dodawania wyniku do twojej historii. Ta gra nie zostanie uznana");
                return(result);
            }

            var quizes = _quizRepository.GetAllBy(x => x.UserId == userId).ToList();

            RateModel rateModel = CalculateCurrentRate(userId, quizes);

            var rate = _rateRepository.GetBy(x => x.UserId == userId);

            bool rateExist = true;

            if (rate == null)
            {
                rate      = new Rate();
                rateExist = false;
            }

            rate.CurrentPercentageRate = rateModel.PercentageRate;
            rate.NumberOfPlayedGames   = rateModel.CountOfQuizes;
            rate.PointsForAllGames     = rateModel.PointsForAllGames;
            rate.UserId = userId;

            if (rateExist)
            {
                rate.CreationDate = rate.CreationDate;
                int isRateUpdated = _rateRepository.Update(rate);
                if (isRateUpdated == 0)
                {
                    result.Errors.Add("Wystąpił błąd podczas dodawania nowych danych do twojego rankingu");
                    return(result);
                }
            }
            else
            {
                int isRateInserted = await _rateRepository.Insert(rate);

                if (isRateInserted == 0)
                {
                    result.Errors.Add("Wystąpił błąd podczas dodawania oceny");
                    return(result);
                }
            }

            var quizDto = new CreateQuizDto();

            quizDto.ActualPoints               = rate.PointsForAllGames;
            quizDto.NumberOfPlayedGames        = rate.NumberOfPlayedGames;
            quizDto.Effectiveness              = rate.CurrentPercentageRate;
            quizDto.NumberOfAllPositiveAnswers = rateModel.NumberOfAllPositiveAnswers;
            quizDto.NumberOfAllNegativeAnswers = rateModel.NumberOfAllNegativeAnswers;

            quizDto.TimeAverage = Math.Round(quizes.Sum(x => x.SecondsSpendOnQuiz) / rateModel.CountOfQuizes, 2);

            var rates = _rateRepository.GetAll(x => x.User.UserSetting).OrderByDescending(x => x.CurrentPercentageRate).ToList();

            var SimilarUsers = new List <SimilarUserDto>();

            var ratesWithoutRequestingUser = rates.Where(x => x.UserId != userId).Take(6).ToList();

            quizDto.PlaceInRank = GetPlaceInRank(ratesWithoutRequestingUser, rates.Single(x => x.UserId == userId).CurrentPercentageRate);

            if (ratesWithoutRequestingUser.Count() > 0)
            {
                foreach (var el in rates)
                {
                    SimilarUsers.Add(new SimilarUserDto(el.User.Username, el.User.Sex, el.User.UserSetting != null ? el.User.UserSetting.PathToAvatar : "",
                                                        el.NumberOfPlayedGames, el.Id, el.PointsForAllGames));
                }
                quizDto.SimilarUsers = SimilarUsers;
            }
            result.SuccessResult = quizDto;

            return(result);
        }
Exemple #30
0
        //
        // GET : /Quiz/Create
        public ActionResult Create()
        {
            var model = new CreateQuizViewModel();

            return(View(model));
        }