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


using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

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)
            {
                EndWindow endWindow = new EndWindow(score, qwest.Sum(x => x.Price));
                endWindow.Show();
                this.Close();
            }
            else
            {
                UpdateQuestion();
            }
        }
        else
        {
            MessageBox.Show($"Неправильно! Правильный ответ: {q.RightAnswer}\nИтоговый счёт: {score}");
            EndWindow endWindow = new EndWindow(score, qwest.Sum(x => x.Price));
            endWindow.Show();
            this.Close();
        }
    }

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

            if (Answer1.Content.ToString() != q.FiftyFiftyAnswer1 && Answer1.Content.ToString() != q.FiftyFiftyAnswer2)
                Answer1.Visibility = Visibility.Hidden;
            if (Answer2.Content.ToString() != q.FiftyFiftyAnswer1 && Answer2.Content.ToString() != q.FiftyFiftyAnswer2)
                Answer2.Visibility = Visibility.Hidden;
            if (Answer3.Content.ToString() != q.FiftyFiftyAnswer1 && Answer3.Content.ToString() != q.FiftyFiftyAnswer2)
                Answer3.Visibility = Visibility.Hidden;
            if (Answer4.Content.ToString() != q.FiftyFiftyAnswer1 && Answer4.Content.ToString() != q.FiftyFiftyAnswer2)
                Answer4.Visibility = Visibility.Hidden;

            hint50 = false;
            Hint50.Background = new SolidColorBrush(Colors.Red);
        }
        else
        {
            MessageBox.Show("Подсказка уже использована!");
        }
    }

    private void Button_Click_Friend(object sender, RoutedEventArgs e)
    {
        if (hintFriend)
        {
            hintFriend = false;
            HintFriend.Background = new SolidColorBrush(Colors.Red);

            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)
        {
            hintHall = false;
            HintHall.Background = new SolidColorBrush(Colors.Red);

            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 UpdateQuestion()
    {
        QuestionNumber.Text = $"Вопрос № {Numb}";
        ScoreText.Text = $"Счёт: {score}";

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

        QuestionText.Text = q.Question;

        // Загрузка картинки
        try
        {
            string imagePath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, q.ImagePath);
            QuestionImage.Source = new BitmapImage(new Uri(imagePath));
        }
        catch
        {
            QuestionImage.Source = null;
        }

        Answer1.Content = q.Answer1;
        Answer2.Content = q.Answer2;
        Answer3.Content = q.Answer3;
        Answer4.Content = q.Answer4;

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