Загрузка данных


using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;

namespace WpfApp1
{
    public partial class MainWindow : Window
    {
        int Numb = 1;
        int score = 0;

        bool hint50 = true;
        bool hintHall = true;
        bool hintFriend = true;

        List<AfQ> qwest = new List<AfQ>();
        Random rnd = new Random();

        public MainWindow()
        {
            InitializeComponent();
            qwest = AfQ.GetQuestions();
            UpdateQuestion();
        }

        private void AnswerForQuestion(object sender, RoutedEventArgs e)
        {
            var q = qwest.Where(m => m.Number == Numb).FirstOrDefault();

            string selected = "";

            if (Answer1.IsChecked == true) selected = Answer1.Content.ToString();
            if (Answer2.IsChecked == true) selected = Answer2.Content.ToString();
            if (Answer3.IsChecked == true) selected = Answer3.Content.ToString();
            if (Answer4.IsChecked == true) selected = Answer4.Content.ToString();

            if (selected == "")
            {
                MessageBox.Show("Выберите ответ!");
                return;
            }

            if (selected == q.RightAnswer)
            {
                score += q.Price;
                MessageBox.Show("Правильно! +" + q.Price);

                Numb++;

                if (Numb > qwest.Count)
                {
                    MessageBox.Show("Победа! Ваш счет: " + score);
                    Close();
                }
                else
                {
                    UpdateQuestion();
                }
            }
            else
            {
                MessageBox.Show("Неправильно! Итог: " + score);
                Close();
            }
        }

        //  50/50 (рис.1)
        private void Button_Click_50(object sender, RoutedEventArgs e)
        {
            if (hint50 == true)
            {
                string a1 = qwest.Where(m => m.Number == Numb)
                    .Select(m => m.FiftyFiftyAnswer1).FirstOrDefault();

                string a2 = qwest.Where(m => m.Number == Numb)
                    .Select(m => m.FiftyFiftyAnswer2).FirstOrDefault();

                if (Answer1.Content.ToString() != a1 && Answer1.Content.ToString() != a2)
                    Answer1.Visibility = Visibility.Hidden;

                if (Answer2.Content.ToString() != a1 && Answer2.Content.ToString() != a2)
                    Answer2.Visibility = Visibility.Hidden;

                if (Answer3.Content.ToString() != a1 && Answer3.Content.ToString() != a2)
                    Answer3.Visibility = Visibility.Hidden;

                if (Answer4.Content.ToString() != a1 && Answer4.Content.ToString() != a2)
                    Answer4.Visibility = Visibility.Hidden;

                hint50 = false;
                Hint50.Background = new SolidColorBrush(Color.FromArgb(255, 255, 0, 0));
            }
            else
            {
                MessageBox.Show("ПОДСКАЗКА УЖЕ ИСПОЛЬЗОВАНА!", "ОШИБКА!");
            }
        }

        //  звонок другу (рис.2)
        private void Button_Click_2(object sender, RoutedEventArgs e)
        {
            if (hintFriend == true)
            {
                hintFriend = false;
                HintFriend.Background = new SolidColorBrush(Color.FromArgb(255, 255, 0, 0));

                var q = qwest.Where(m => m.Number == Numb).FirstOrDefault();
                MessageBox.Show("Друг думает: " + q.RightAnswer);
            }
            else
            {
                MessageBox.Show("ПОДСКАЗКА УЖЕ ИСПОЛЬЗОВАНА!", "ОШИБКА!");
            }
        }

        //  помощь зала (упрощённая с процентами)
        private void Button_Click_Hall(object sender, RoutedEventArgs e)
        {
            if (hintHall == true)
            {
                hintHall = false;
                HintHall.Background = new SolidColorBrush(Color.FromArgb(255, 255, 0, 0));

                var q = qwest.Where(m => m.Number == Numb).FirstOrDefault();

                int correct = rnd.Next(60, 80);
                int w1 = rnd.Next(0, 100 - correct);
                int w2 = rnd.Next(0, 100 - correct - w1);
                int w3 = 100 - correct - w1 - w2;

                string msg =
                    q.Answer1 + " — " + (q.Answer1 == q.RightAnswer ? correct : w1) + "%\n" +
                    q.Answer2 + " — " + (q.Answer2 == q.RightAnswer ? correct : w2) + "%\n" +
                    q.Answer3 + " — " + (q.Answer3 == q.RightAnswer ? correct : w3) + "%\n" +
                    q.Answer4 + " — " + (q.Answer4 == q.RightAnswer ? correct : rnd.Next(0, 20)) + "%";

                MessageBox.Show(msg, "Мнение зала");
            }
            else
            {
                MessageBox.Show("ПОДСКАЗКА УЖЕ ИСПОЛЬЗОВАНА!", "ОШИБКА!");
            }
        }

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            ResizeAnswers();
        }

        private void Window_SizeChanged(object sender, SizeChangedEventArgs e)
        {
            ResizeAnswers();
        }

        private void ResizeAnswers()
        {
            double windowWidth = this.ActualWidth;
            double answerWidth = (windowWidth - 80) / 2;

            Answer1.Width = answerWidth;
            Answer2.Width = answerWidth;
            Answer3.Width = answerWidth;
            Answer4.Width = answerWidth;
        }

        //  РИСУНОК 4 — В КОНЦЕ (как ты просил)
        private void UpdateQuestion()
        {
            QuestionNumber.Text = "Вопрос № " + Numb;

            QuestionText.Text = qwest.Where(m => m.Number == Numb)
                .Select(m => m.Question).FirstOrDefault();

            Answer1.Content = qwest.Where(m => m.Number == Numb)
                .Select(m => m.Answer1).FirstOrDefault();

            Answer2.Content = qwest.Where(m => m.Number == Numb)
                .Select(m => m.Answer2).FirstOrDefault();

            Answer3.Content = qwest.Where(m => m.Number == Numb)
                .Select(m => m.Answer3).FirstOrDefault();

            Answer4.Content = qwest.Where(m => m.Number == Numb)
                .Select(m => m.Answer4).FirstOrDefault();

            ScoreText.Text = "Очки: " + score + " | Цена: " +
                qwest.Where(m => m.Number == Numb)
                .Select(m => m.Price).FirstOrDefault();

            Answer1.IsChecked = false;
            Answer2.IsChecked = false;
            Answer3.IsChecked = false;
            Answer4.IsChecked = false;

            Answer1.Visibility = Visibility.Visible;
            Answer2.Visibility = Visibility.Visible;
            Answer3.Visibility = Visibility.Visible;
            Answer4.Visibility = Visibility.Visible;
        }
    }
}