Ejemplo n.º 1
0
        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);
        }