public SlackHelper(TriviaContext _dbcontext) { dbcontext = _dbcontext; pendingQuestionId = Guid.Empty; var builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("authentication.json", false, false) .AddJsonFile("conversations.json", false, true); Configuration = builder.Build(); string token = Configuration["auth"]; client = new SlackSocketClient(token); workingTriviaChannelId = Configuration["workingchannel"]; triviaChannelId = Configuration["triviaChannelId"]; //triviaChannelId = Configuration["workingchannel"]; adminId = Configuration["adminId"]; adminDM = Configuration["adminDM"]; string timeSpanString = Configuration["timespan"]; int.TryParse(timeSpanString, out int timeSpanHours); //timespan = new TimeSpan(0, timeSpanHours, 0, 0); timespan = new TimeSpan(0, 1, 0, 0); }
public async Task <ActionResult> Statistics() { var db = new TriviaContext(); var statisticsService = new StatisticsService(db); return(View(await statisticsService.GenerateStatistics())); }
/// <summary> /// /// </summary> /// <param name="triviaContext"></param> /// <param name="isTeam">If true, will look for team. If false, will look for user.</param> /// <returns></returns> public async Task <TriviaLeaderboard[]> GetLeaderboardAsync(TriviaContext triviaContext, bool isTeam) { TriviaLeaderboard[] triviaLeaderboard = null; string requestUri = isTeam ? TriviaLeaderboardTeamUri : TriviaLeaderboardUserUri; HttpContent httpContent = new StringContent( JsonConvert.SerializeObject(triviaContext), Encoding.UTF8, RestApiHelper.ContentTypeJson); string response = null; try { response = await RestApiHelper.ExecuteHttpPostAsync( requestUri, httpContent, RestApiHelper.ContentTypeJson); System.Diagnostics.Debug.WriteLine($"Received response: {response}"); triviaLeaderboard = JsonConvert.DeserializeObject <TriviaLeaderboard[]>(response); } catch (Exception e) { System.Diagnostics.Debug.WriteLine($"Failed to get leaderboard: {e.Message}"); } return(triviaLeaderboard); }
public TriviaController() { this.db = new TriviaContext(); this.questionsService = new QuestionsService(db); this.answersService = new AnswersService(db); this.statisticsService = new StatisticsService(db); }
public void TestGetLeaderboard() { TriviaContext triviaContext = new TriviaContext() { TeamId = "", ChannelId = "", Locale = "", Theme = "", EntityId = "", SubEntityId = "", Upn = "", Tid = "", GroupId = "" }; TriviaLeaderboard[] triviaLeaderboard = _triviaApiClient.GetLeaderboardAsync(triviaContext, true).Result; Assert.AreNotEqual(null, triviaLeaderboard); if (triviaLeaderboard.Length > 0) { string teamId = triviaLeaderboard[0].Id; Assert.AreEqual(false, string.IsNullOrEmpty(teamId)); System.Diagnostics.Debug.WriteLine($"Deserialized team ID: {teamId}"); string teamName = triviaLeaderboard[0].Name; Assert.AreEqual(false, string.IsNullOrEmpty(teamName)); System.Diagnostics.Debug.WriteLine($"Deserialized team name: {teamName}"); } }
protected virtual void CheckForCorrectAnswer(string nick, string message) { Debug.Assert(GameState != null); lock (GameState.Lock) { string trimmedLowerMessage = message.Trim().ToLowerInvariant(); bool hit = false; foreach (string answer in GameState.CurrentQuestion.Answers) { Debug.Assert(answer == answer.Trim().ToLowerInvariant()); if (trimmedLowerMessage == answer) { hit = true; break; } } if (!hit) { return; } // got it! StopTimer(); ConnectionManager.SendChannelMessage( Config.TriviaChannel, $"{nick} got it! The correct answer was: {GameState.CurrentQuestion.MainAnswer}" ); string user = ConnectionManager.RegisteredNameForNick(nick) ?? nick; string userLower = user.ToLowerInvariant(); using (TriviaContext ctx = GetNewContext()) { LeaderboardEntry entry = ctx.LeaderboardEntries.FirstOrDefault(le => le.NicknameLowercase == userLower); if (entry == null) { entry = new LeaderboardEntry { NicknameLowercase = userLower, CorrectAnswers = 1 }; ctx.LeaderboardEntries.Add(entry); } else { ++entry.CorrectAnswers; } ctx.SaveChanges(); } NewQuestion(); } }
public async Task <ActionResult> AddNewTest(TestViewModel test) { //TriviaDatabaseInitializer if (test != null) { TriviaContext context = new TriviaContext(); await Task.Run(() => { var triviaTest = _triviaService.ConvertToTriviaAsync(test).Result; _triviaRepository.Add(triviaTest); _triviaRepository.Commit(); }); } return(null); }
public ActionResult Index() { var questions = new List <string>(); using (var context = new TriviaContext()) { foreach (var question in context.TriviaQuestions) { questions.Add(question.Title); } } // Pass Data to the View ViewData["active"] = ActiveQuestion(); ViewData["questions"] = questions; return(View()); }
protected virtual void HandleBaseNickChanged(object sender, BaseNickChangedEventArgs args) { // merge score of old and new object gameLock = GameState?.Lock ?? new object(); lock (gameLock) { var oldNickLower = args.OldBaseNick.ToLowerInvariant(); var newNickLower = args.NewBaseNick.ToLowerInvariant(); using (TriviaContext ctx = GetNewContext()) { LeaderboardEntry oldEntry = ctx.LeaderboardEntries .FirstOrDefault(le => le.NicknameLowercase == oldNickLower); if (oldEntry == null) { // don't bother return; } LeaderboardEntry newEntry = ctx.LeaderboardEntries .FirstOrDefault(le => le.NicknameLowercase == newNickLower); if (newEntry == null) { newEntry = new LeaderboardEntry { NicknameLowercase = newNickLower, CorrectAnswers = oldEntry.CorrectAnswers }; ctx.Add(newEntry); } else { newEntry.CorrectAnswers += oldEntry.CorrectAnswers; } ctx.Remove(oldEntry); ctx.SaveChanges(); } } }
public async Task <List <LeaderboardItem> > PopulateAsync() { List <LeaderboardItem> results = new List <LeaderboardItem>(); TriviaApiClient triviaApiClient = new TriviaApiClient(); TriviaContext triviaContext = new TriviaContext() { TeamId = "", ChannelId = "", Locale = "", Theme = "", EntityId = "", SubEntityId = "", Upn = "", Tid = "", GroupId = "" }; TriviaLeaderboard[] triviaLeaderboards = await triviaApiClient.GetLeaderboardAsync(triviaContext, true); //TriviaLeaderboard[] triviaLeaderboard = // _triviaApiClient.GetLeaderboardAsync(triviaContext, true).Result; if (triviaLeaderboards != null) { foreach (TriviaLeaderboard triviaLeaderboard in triviaLeaderboards) { results.Add(new LeaderboardItem() { ProfileImageUri = "", Name = triviaLeaderboard.Name }); } } return(results); }
public RepositoryBase(TriviaContext repositoryContext) { this.RepositoryContext = repositoryContext; }
public OptionController(TriviaContext context) { _context = context; }
public QuizController(TriviaContext context) { _context = context; }
public CategoryRepository(TriviaContext context) : base(context) { }
public TriviaController(TriviaContext db) { _db = db; }
public PlayerRepository(TriviaContext context) : base(context) { }
public void Update(GameTime GameTime) { TriviaContext.Update(GameTime); GameOverContext.Update(GameTime); WarningContext.Update(GameTime); }
public StatisticsService(TriviaContext db) { this.db = db; }
public QuestionsService(TriviaContext db) { this.db = db; }
public RepositoryWrapper(TriviaContext repositoryContext) { _triviaContext = repositoryContext; }
public GenericRepository(TriviaContext context) { this._context = context; }
public HomeController(TriviaContext context) { _context = context; }
public AnswersService(TriviaContext db) { this.db = db; }
public AnswerRepository(TriviaContext context) : base(context) { }
public AnswersController(TriviaContext context) { _context = context; }
public void Reset() { ScoreContext.Reset(); TriviaContext.Reset(); GameOverContext.Reset(); }
public GameplayRoomRepository(TriviaContext context) : base(context) { }
public DuelController(TriviaContext context, IHttpClientFactory httpClientFactory) { _context = context; _httpClientFactory = httpClientFactory; }
public QuestionsController(TriviaContext context) { dbContext = context; }
public LinkingController(TriviaContext context) { _context = context; }