public static IQuest GetRandomAvailableQuestion(Model type, List <int> actual_chosen) { double actual_index = 0; var quests = Get(type).Where(x => x.IsActive && !actual_chosen.Contains(x.Id)); foreach (var quest in quests) { actual_index += quest.Chance; quest.Index_show = actual_index; } var totalChances = quests.Select(x => x.Chance).Sum(); int pickBasedOnChance = UtilWPF.RandomNumber(0, (int)totalChances); IQuest selected = quests.First(); double cumulative = 0.0; for (int i = 0; i < quests.Count(); i++) { cumulative += quests.ElementAt(i).Chance; if (pickBasedOnChance < cumulative) { selected = quests.ElementAt(i); break; } } return(selected); }
private void BtnFinish_Click(object sender, RoutedEventArgs e) { lblScore.Visibility = Visibility.Visible; var result = TemplateWPF.CheckAnswers(CellList); lblScore.Content = result.Item1; lblScore.Foreground = UtilWPF.GetAvgColor(result.Item2); btnFinish.IsEnabled = false; }
public static ChalLine CreateChalLine(IQuest quest, int row, Grid userControlGrid, Microsoft.Office.Interop.Word.Application wordApp = null) { var line = new ChalLine(); line.Quest = quest; line.Chal.Grid_chal = MyGrids.GetChallenge(row, userControlGrid); MyStacks.Get(line.Chal.Row_1, 0, 0, line.Chal.Grid_chal); line.Chal.Row_1.Visibility = Visibility.Collapsed; MyLbls.Chal_answer(line.Chal.Answer, line.Chal.Row_1, quest.Text); if (quest is VocModel voc) { MyLbls.Get(line.Chal.PtBr, line.Chal.Row_1, voc.PtBr); line.Chal.PtBr.Foreground = Brushes.DarkBlue; MyLbls.Get(line.Chal.Definition, line.Chal.Row_1, voc.Definition); } var stk_2 = BuildSenChal(line, wordApp); UtilWPF.SetGridPosition(stk_2, 1, 0, line.Chal.Grid_chal); MyGrids.GetRow(line.Chal.Row_3, 2, 0, line.Chal.Grid_chal, new List <int>() { 1, 1, 1, 1, 1, 1 }); line.Chal.Row_3.Visibility = Visibility.Collapsed; MyLbls.AvgScore(line.Chal.Avg_w, 0, 0, line.Chal.Row_3, line.Quest, 7, false); MyLbls.AvgScore(line.Chal.Avg_m, 0, 1, line.Chal.Row_3, line.Quest, 30, false); MyLbls.AvgScore(line.Chal.Avg_all, 0, 2, line.Chal.Row_3, line.Quest, 2000, false); MyLbls.Tries(line.Chal.Tries, 0, 3, line.Chal.Row_3, line.Quest); MyLbls.Get(line.Chal.Importante, 0, 4, line.Chal.Row_3, line.Quest.Importance.ToDesc()); MyLbls.Chance(line.Chal.Chance, 0, 5, line.Chal.Row_3, line.Quest); line.Chal.Chance.Content.ToString().Insert(0, "was "); MyGrids.GetRow(line.Chal.Row_4, 3, 0, line.Chal.Grid_chal, new List <int>() { 2, 1, 2, 1, 2 }); line.Chal.Row_4.Visibility = Visibility.Collapsed; MyBtns.Chal_remove_att(line); MyLbls.Chal_quest_id(line, 2); MyBtns.Chal_disable_quest(line); return(line); }
private static void CheckIfItemWasEdited(SenVM_Deprecated sen, TextBox txt_sen, Button btn_edit) { var wasTextEdited = txt_sen.Text != sen.Text; if (wasTextEdited) { btn_edit.IsEnabled = true; btn_edit.Content = UtilWPF.GetIconButton("save"); } else { btn_edit.IsEnabled = false; btn_edit.Content = new FormatConvertedBitmap(btn_edit.Content as BitmapSource, PixelFormats.Gray32Float, null, 50); } }
public static void ShowScoredTemplate(List <CellTemplate> cellList, int lastDays) { foreach (var item in cellList) { item.Quest.LoadCrossData(); if (item.Quest.Tries.Count != 0) { var avg = item.Quest.GetAverageScoreByTime(lastDays); item.Lbl.Foreground = UtilWPF.GetAvgColor(avg); var tries_period = item.Quest.Tries.Where(x => x.When >= (DateTime.Now.AddDays(-lastDays))); var corrects_period = tries_period.Where(x => x.Score == 10); item.Lbl.ToolTip = corrects_period.Count() + " / " + tries_period.Count(); } } }