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(); } }
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); }