public IHttpActionResult GetStartQuizGame(string userId, string quizId) { var quizGame = new WIQuest.Web.API.Responses.QuizGameCreate(); try { var gameService = new GamePlayService(); var game = gameService.CreateSingleUserGame(userId, Guid.Parse(quizId)); if (game != null) { quizGame.GameId = game.Id; quizGame.PlayerId = game.Players.First().Id; quizGame.Quiz = game.Levels.First().Quiz; } else { quizGame.Message = "Quiz existiert nicht!"; } } catch (Exception e) { quizGame.Message = e.Message; } quizGame.Message = "Test"; return(Ok(quizGame)); }
public async Task TestService() { var service = new GamePlayService(); var result = await service.GetGamePlay(); Assert.IsNotNull(result); }
/// <summary> /// /// </summary> /// <param name="id">QuizId</param> /// <returns></returns> public ActionResult StartGame(Guid id) { // User identifizieren var user = GetCurrentUser(); // Spiel anlegen var gameService = new GamePlayService(); var game = gameService.CreateSingleUserGame(user.Id, id); var gameState = new GamePlayState(); gameState.Game = game; gameState.Player = game.Players.First(); gameState.Quiz = game.Levels.First().Quiz; // Den Fragenkatalog sortiert aufbauen foreach (var quizSection in gameState.Quiz.Sections.OrderBy(x => x.Order)) { foreach (var quizQuestion in quizSection.Questions.OrderBy(x => x.Order)) { gameState.QuestionsLeft.Add(quizQuestion.Question); } } // TODO: Hier jetzt die Option des Quiz einbauen // Fragen mischen gameState.QuestionsLeft.Shuffle(); // Statistik erstellen gameState.QuestionTotalCount = gameState.QuestionsLeft.Count; // In einer Session sichern // oder in DB? Session["GameState"] = gameState; var question = gameState.QuestionsLeft.FirstOrDefault(); var model = new QuestionViewModel(); model.Question = question; model.Answers = question.Answers.ToList(); model.Answers.Shuffle(); model.Total = gameState.QuestionTotalCount; model.Index = gameState.QuestionTotalCount - gameState.QuestionsLeft.Count + 1; gameState.CurrentQuestion = model; //return View("PlayGameSPA", model); return(View("PlayGame", model)); }
public ActionResult StartGame(Guid id) { // User identifizieren // den gibt es nicht => dummy user! var user = GetAnoynmousUser(); // Spiel anlegen var gameService = new GamePlayService(); var game = gameService.CreateSingleUserGame(user.Id, id); var gameState = new GamePlayState(); gameState.Game = game; gameState.Player = game.Players.First(); gameState.Quiz = game.Levels.First().Quiz; foreach (var quizSection in gameState.Quiz.Sections) { foreach (var quizQuestion in quizSection.Questions) { gameState.QuestionsLeft.Add(quizQuestion.Question); } } // Fragen mischen gameState.QuestionsLeft.Shuffle(); // Statistik erstellen gameState.QuestionTotalCount = gameState.QuestionsLeft.Count; // In einer Session sichern // oder in DB? Session["GameState"] = gameState; var question = gameState.QuestionsLeft.FirstOrDefault(); var model = new QuestionViewModel(); model.Question = question; model.Answers = question.Answers.ToList(); model.Answers.Shuffle(); model.Total = gameState.QuestionTotalCount; model.Index = gameState.QuestionTotalCount - gameState.QuestionsLeft.Count + 1; gameState.CurrentQuestion = model; //return View("PlayGameSPA", model); return(View("PlayGame", model)); }
/// <summary> /// /// </summary> /// <param name="exId">ExerciseId</param> /// <param name="subId">Subscription</param> /// <returns></returns> public ActionResult StartExercise(Guid exId, Guid subId) { // User identifizieren var user = GetCurrentUser(); var exercise = QuizDb.TrainingExercises.SingleOrDefault(x => x.Id == exId); var subscription = QuizDb.TrainingGroupSubscriptions.SingleOrDefault(x => x.Id == subId); // Spiel anlegen var gameService = new GamePlayService(QuizDb); var game = gameService.CreateSingleUserGame(user.Id, exercise.Quiz.Id); var practice = new TrainingPractice { Exercise = exercise, Game = game, Subscription = subscription }; QuizDb.TrainingPractices.Add(practice); QuizDb.SaveChanges(); var gameState = new GamePlayState { Game = game, Player = game.Players.First(), Quiz = game.Levels.First().Quiz, Practice = practice }; // Den Fragenkatalog sortiert aufbauen foreach (var quizSection in gameState.Quiz.Sections.OrderBy(x => x.Order)) { foreach (var quizQuestion in quizSection.Questions.OrderBy(x => x.Order)) { gameState.QuestionsLeft.Add(quizQuestion.Question); } } // TODO: Hier jetzt die Option des Quiz einbauen // Fragen mischen gameState.QuestionsLeft.Shuffle(); // Statistik erstellen gameState.QuestionTotalCount = gameState.QuestionsLeft.Count; // In einer Session sichern // oder in DB? Session["GameState"] = gameState; var question = gameState.QuestionsLeft.FirstOrDefault(); var model = new QuestionViewModel { Question = question, Answers = question.Answers.ToList() }; model.Answers.Shuffle(); model.Total = gameState.QuestionTotalCount; model.Index = gameState.QuestionTotalCount - gameState.QuestionsLeft.Count + 1; gameState.CurrentQuestion = model; //return View("PlayGameSPA", model); return(View("PlayGame", model)); }