public void AddAnswerStatistics(string userId, AnswerStatistic answerStatistics)
        {
            using (var db = new AcademicQuizBotDb())
            {
                var user = db.Users.FirstOrDefault(u => u.UserId == userId);
                if (user == null)
                {
                    return;
                }

                user.AnswerStatistic.Add(answerStatistics);
                db.SaveChanges();
            }
        }
Ejemplo n.º 2
0
        private async Task ShowResult(IDialogContext context, bool isCorrect)
        {
            string isCorrectStr;
            Random rand    = new Random();
            string sticker = "";

            if (isCorrect)
            {
                var index = rand.Next(Consts.CorrectAnswers.Length);
                isCorrectStr = Consts.CorrectAnswers[index];
                var stickerIndex = rand.Next(Consts.GoodStickers.Length);
                sticker = Consts.GoodStickers[stickerIndex];
            }
            else
            {
                var index = rand.Next(Consts.BadAnswers.Length);
                isCorrectStr = Consts.BadAnswers[index];
                var stickerIndex = rand.Next(Consts.BadStickers.Length);
                sticker = Consts.BadStickers[stickerIndex];
            }
            bool isTelegram = context.Activity.ChannelId == "telegram";

            if (isTelegram && rand.Next(100) > 30)
            {
                var bot = new TelegramBotClient(Consts.Telegram.Token);
                await bot.SendStickerAsync(context.Activity.From.Id, sticker);
            }

            var reply = context.MakeMessage();

            reply.Text       = BoldString($"{isCorrectStr}");
            reply.TextFormat = "xml";
            await context.PostAsync(reply);

            var answer = new AnswerStatistic {
                Index = _question.Index, IsCorrect = isCorrect
            };

            DataProviderService.Instance.AddAnswerStatistics(context.Activity.From.Id, answer);
            await ShowAnswerDescribe(context);
            await ShowStatistic(context);
            await ShowQuestion(context);
        }