static void Main(string[] args) { config = new LibInit().Config; var initializationStatus = config.BotClient.TestApiAsync().Result; config.BotClient.OnMessage += Bot_OnMessage; config.BotClient.OnCallbackQuery += Bot_OnCallbackQuery; config.BotClient.StartReceiving(); while (true) { Console.WriteLine(ChatStats.getReportOnCurrentChats(config)); Thread.Sleep(10000); } }
public async Task <ChatStats> GetChatStats(string messengerUsername, string chatId) { var store = _db.StoreChatStats(); var chatStats = await store.FindByChatIdAsync(chatId); if (chatStats == null) { chatStats = new ChatStats(); chatStats.ChatId = chatId; var currentUserStats = new UserStats() { MessengerUsername = messengerUsername }; chatStats.UsersStats = new List <UserStats>() { currentUserStats }; await store.UpsertAsync(chatStats); } return(chatStats); }
public async Task <(bool IsRight, UserStats Stats)> CheckAnswerAndUpdateStats( string text, GameState state, string messengerUsername, string chatId ) { var store = _db.StoreChatStats(); var chatStats = await store.FindByChatIdAsync(chatId); if (chatStats == null) { chatStats = new ChatStats(); chatStats.ChatId = chatId; chatStats.UsersStats = new List <UserStats>() { }; } var userStats = chatStats.UsersStats.FirstOrDefault(u => u.MessengerUsername == messengerUsername); if (userStats == null) { userStats = new UserStats() { MessengerUsername = messengerUsername }; chatStats.UsersStats.Add(userStats); } userStats.TotalAnswersCount++; var isRight = IsAnswerRight(text, state); if (isRight) { userStats.CorrectAnswersCount++; } await store.UpsertAsync(chatStats); return(isRight, userStats); }