public async Task <IActionResult> PlayQuiz(string pin, string validusername) { QuizPlayerVM quizPlayerVM; bool pinExists; try { pinExists = await MongoManager.CheckIfPinExistsAsync(pin, "runningQuizzes"); } catch (MongoException mex) { HttpContext.Session.SetString("error", mex.Message); return(RedirectToAction("Error", "Home")); } catch (Exception ex) { HttpContext.Session.SetString("error", ex.Message); return(RedirectToAction("Error", "Home")); } if (pinExists) { try { quizPlayerVM = await AgonManager.CreateQuizPlayerVM(pin, validusername); } catch (MongoException mex) { HttpContext.Session.SetString("error", mex.Message); return(RedirectToAction("Error", "Home")); } catch (Exception ex) { HttpContext.Session.SetString("error", ex.Message); return(RedirectToAction("Error", "Home")); } string cacheKey = pin; var players = _memoryCache.Get <List <string> >(cacheKey); if (players == null) { players = new List <string>(); } players.Add(validusername); _memoryCache.Set <List <string> >(cacheKey, players); return(View(quizPlayerVM)); } else { return(RedirectToAction("Index", "Home")); } }
public static async Task <QuizMasterVM> StartQuiz(string _id) { await MongoManager.ClearOldAnswers(_id); int pin; // Hämta quiz från quizzes RunningQuiz runningQuiz; runningQuiz = JsonConvert.DeserializeObject <RunningQuiz>(await MongoManager.GetOneQuizAsync(_id, "Quizzes")); do { pin = randomizer.Next(1000, 9999); }while (await MongoManager.CheckIfPinExistsAsync(pin.ToString(), "runningQuizzes")); runningQuiz.Pin = pin.ToString(); // Stoppa ner quizzet med PIN i runningQuizzes if (await MongoManager.CheckIfDocumentExistsAsync(runningQuiz._id, "runningQuizzes")) { await MongoManager.ReplaceOneQuizAsync(runningQuiz._id, JsonConvert.SerializeObject(runningQuiz), "runningQuizzes"); } else { await MongoManager.SaveDocumentAsync("runningQuizzes", JsonConvert.SerializeObject(runningQuiz)); } // Generera QuizMasterVM och returnera var quizMasterVM = new QuizMasterVM(runningQuiz); StringBuilder songList = new StringBuilder(); foreach (var song in quizMasterVM.Songs) { songList.Append(song.SpotifyReferenceID); if (song != quizMasterVM.Songs[quizMasterVM.Songs.Count - 1]) { songList.Append(","); } } quizMasterVM.SongList = songList.ToString(); return(quizMasterVM); }
public async Task <bool> CheckPin(string id) { return(await MongoManager.CheckIfPinExistsAsync(id, "runningQuizzes")); }