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); }
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" })); }
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); }
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 })); }
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" })); }
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)); }
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)); }
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))); }
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)); }
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])); }
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")); }
public IActionResult CreateQuiz() { var viewModel = new CreateQuizViewModel(); return(View(viewModel)); }
public Command_Remove_Question(CreateQuizViewModel vModel) { this.vModel = vModel; }
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)); }
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); }
// // GET : /Quiz/Create public ActionResult Create() { var model = new CreateQuizViewModel(); return(View(model)); }