using HelloItQuantum.Function;
using HelloItQuantum.Views;
using System;
using System.IO;
using System.Media;
namespace HelloItQuantum.ViewModels
{
public class HotkeysViewModel : MainWindowViewModel
{
#region
bool visibleBtnNext = true; //Кнопка Далее
string textInBtnNext = "Далее"; //Текст внутри кнопки Далее (иногда он может быть Да)
bool visibleBtnNo = false; //Кнопка Нет
bool visibleTBAnswer = false; //TB куда вводить ответ
bool visibleImgAnswer = false; //SP с ответом
bool visibleSvgHotkey = true;
string pathSvgHotkey = "/Assets/ImgHotkeys/Backspace.svg";
string textInSP = ""; //Текст в StackPanel
string textAnswer = ""; //Текст в поле ввода ответа
(int, string, int) act = (1, "", 1);
string textShowAct = "1/5";
string path = $"{Path.GetDirectoryName(Path.GetDirectoryName(Path.GetDirectoryName(Path.GetDirectoryName(AppDomain.CurrentDomain.BaseDirectory))))}\\Assets\\HotkeysAudio\\voice1.wav";
public bool VisibleBtnNext { get => visibleBtnNext; set => SetProperty(ref visibleBtnNext, value); }
public string TextInBtnNext { get => textInBtnNext; set => SetProperty(ref textInBtnNext, value); }
public bool VisibleBtnNo { get => visibleBtnNo; set => SetProperty(ref visibleBtnNo, value); }
public bool VisibleTBAnswer { get => visibleTBAnswer; set => SetProperty(ref visibleTBAnswer, value); }
public bool VisibleImgAnswer { get => visibleImgAnswer; set => SetProperty(ref visibleImgAnswer, value); }
public string TextInSP { get => textInSP; set => SetProperty(ref textInSP, value); }
public string TextShowAct { get => textShowAct; set => SetProperty(ref textShowAct, value); }
public string TextAnswer { get => textAnswer; set => SetProperty(ref textAnswer, value); }
public bool VisibleSvgHotkey { get => visibleSvgHotkey; set => SetProperty(ref visibleSvgHotkey, value); }
public string PathSvgHotkey { get => pathSvgHotkey; set => SetProperty(ref pathSvgHotkey, value); }
#endregion
public HotkeysViewModel()
{
string directory = Path.GetDirectoryName(Path.GetDirectoryName(Path.GetDirectoryName(Path.GetDirectoryName(AppDomain.CurrentDomain.BaseDirectory))));
switch (CurrentUser.GameHotkeys)
{
case 20:
{
act = (6, "Ты молодец. Знаешь ли ты, как с помощью клавиатуры скопировать текст?", 2);
path = $"{directory}\\Assets\\HotkeysAudio\\voice6.wav";
TextShowAct = "2/5";
}
break;
case 40:
{
act = (9, "Отлично справляешься. Знаешь ли ты, как с помощью клавиатуры вставить скопированный текст?", 2);
path = $"{directory}\\Assets\\HotkeysAudio\\voice11.wav";
TextShowAct = "3/5";
}
break;
case 60:
{
act = (12, "Почти конец! Знаешь ли ты, как стереть символ спереди курсора?", 2);
path = $"{directory}\\Assets\\HotkeysAudio\\voice15.wav";
TextShowAct = "4/5";
}
break;
case 80:
{
act = (15, "И мой последний вопрос. Знаешь ли ты, как закрыть приложение, в котором ты сейчас находишься, с помощью клавиш?", 2);
path = $"{directory}\\Assets\\HotkeysAudio\\voice19.wav";
TextShowAct = "5/5";
} break;
default: act = act = (1, "Изучать программирование - значит уметь выполнять различные действия на компьютере с помощью клавиатуры", 1); break;
}
ParsAct();
}
///
/// Функция запуска аудио
///
public void PlayTask()
{
SoundPlayer snd = new SoundPlayer(path);
snd.Play();
}
///
/// Парс элемента очереди
///
public void ParsAct()
{
TextAnswer = "";
TextInSP = act.Item2;
switch (act.Item3)
{
case 1:
{
VisibleTBAnswer = false;
VisibleBtnNo = false;
VisibleBtnNext = true;
TextInBtnNext = "Далее";
}; break;
case 2:
{
VisibleTBAnswer = false;
VisibleBtnNo = true;
VisibleBtnNext = true;
TextInBtnNext = "Да";
}; break;
case 3:
{
VisibleTBAnswer = true;
VisibleBtnNo = false;
VisibleBtnNext = true;
TextInBtnNext = "Далее";
}; break;
}
}
public void GoBack()
{
PageSwitch.View = new PlaySectionView();
}
///
/// Обработка нажатий на кнопку
///
/// Какая кнопка была нажата
public void GoNext(string button)
{
string directory = Path.GetDirectoryName(Path.GetDirectoryName(Path.GetDirectoryName(Path.GetDirectoryName(AppDomain.CurrentDomain.BaseDirectory))));
switch (act.Item1)
{
case 1:
{
act = (2, "Готов ли ты проверить свои знания в мире горячих клавиш? Не волнуйся, я тебя научу", 2);
path = $"{directory}\\Assets\\HotkeysAudio\\voice2.wav";
}; break;
case 2:
{
if (button == "Далее")
{
act = (3, "Отлично. Начнем с простого вопроса. Знаешь ли ты, как с помощью клавиатуры стирать текст?", 2);
path = $"{directory}\\Assets\\HotkeysAudio\\voice3.wav";
}
else
{
GoBack();
}
}; break;
case 3:
{
if (button == "Далее")
{
act = (4, "Если говоришь, знаешь, введи название клавиши, с помощью которой можно стереть текст", 3);
path = $"{directory}\\Assets\\HotkeysAudio\\voice4.wav";
}
else
{
act = (5, "Чтобы стереть текст, который ты написал, необходимо нажать клавишу Backspace. Иногда её изображают стрелочкой влево.", 1);
PathSvgHotkey = "/Assets/ImgHotkeys/Backspace.svg";
VisibleSvgHotkey = !VisibleSvgHotkey;
path = $"{directory}\\Assets\\HotkeysAudio\\voice5.wav";
}
}; break;
case 4:
{
if (button == "Забыл")
{
act = (5, "Чтобы стереть текст, который ты написал, необходимо нажать клавишу Backspace. Иногда её изображают стрелочкой влево.", 1);
PathSvgHotkey = "/Assets/ImgHotkeys/Backspace.svg";
VisibleSvgHotkey = !VisibleSvgHotkey;
path = $"{directory}\\Assets\\HotkeysAudio\\voice5.wav";
}
else
{
if (TextAnswer.ToLower().Trim() == "backspace" || TextAnswer.ToLower().Trim() == "←" || TextAnswer.ToLower().Trim() == "<-")
{
WorkWithFile.UpdateValueGameProgress(1, 20, CurrentUser);
act = (6, "Ты молодец. Знаешь ли ты, как с помощью клавиатуры скопировать текст?", 2);
path = $"{directory}\\Assets\\HotkeysAudio\\voice6.wav";
TextShowAct = "2/5";
}
else
{
SoundPlayer snd = new SoundPlayer($"{directory}\\Assets\\HotkeysAudio\\error.wav");
snd.Play();
}
}
}; break;
case 5:
{
VisibleSvgHotkey = !VisibleSvgHotkey;
act = (4, "Введи название клавиши, которую ты узнал, с помощью которой можно стереть текст", 3);
path = $"{directory}\\Assets\\HotkeysAudio\\voice7.wav";
}; break;
case 6:
{
if (button == "Далее")
{
act = (8, "Если говоришь, знаешь, введи сочетание клавиш, с помощью которых можно скопировать текст", 3);
path = $"{directory}\\Assets\\HotkeysAudio\\voice8.wav";
}
else
{
act = (7, "Чтобы с помощью клавиатуры скопировать текст, необходимо использовать сочетание клавиш Ctrl + C.", 1);
PathSvgHotkey = "/Assets/ImgHotkeys/CtrlC.svg";
VisibleSvgHotkey = !VisibleSvgHotkey;
path = $"{directory}\\Assets\\HotkeysAudio\\voice9.wav";
}
}; break;
case 7:
{
VisibleSvgHotkey = !VisibleSvgHotkey;
act = (8, "Если говоришь, знаешь, введи сочетание клавиш, с помощью которых можно скопировать текст", 3);
path = $"{directory}\\Assets\\HotkeysAudio\\voice10.wav";
}; break;
case 8:
{
if (button == "Забыл")
{
act = (7, "Чтобы с помощью клавиатуры скопировать текст, необходимо использовать сочетание клавиш Ctrl + C.", 1);
PathSvgHotkey = "/Assets/ImgHotkeys/CtrlC.svg";
VisibleSvgHotkey = !VisibleSvgHotkey;
path = $"{directory}\\Assets\\HotkeysAudio\\voice9.wav";
}
else
{
if (TextAnswer.ToLower().Trim() == "ctrl + c" || TextAnswer.ToLower().Trim() == "ctrl c")
{
WorkWithFile.UpdateValueGameProgress(1, 40, CurrentUser);
act = (9, "Отлично справляешься. Знаешь ли ты, как с помощью клавиатуры вставить скопированный текст?", 2);
path = $"{directory}\\Assets\\HotkeysAudio\\voice11.wav";
TextShowAct = "3/5";
}
else
{
SoundPlayer snd = new SoundPlayer($"{directory}\\Assets\\HotkeysAudio\\error.wav");
snd.Play();
}
}
}; break;
case 9:
{
if (button == "Далее")
{
act = (11, "Если говоришь, знаешь, введи сочетание клавиш, с помощью которых можно вставить скопированный текст", 3);
path = $"{directory}\\Assets\\HotkeysAudio\\voice12.wav";
}
else
{
act = (10, "Чтобы с помощью клавиатуры вставить скопированный текст, необходимо использовать сочетание клавиш Ctrl + V.", 1);
PathSvgHotkey = "/Assets/ImgHotkeys/CtrlV.svg";
VisibleSvgHotkey = !VisibleSvgHotkey;
path = $"{directory}\\Assets\\HotkeysAudio\\voice13.wav";
}
}; break;
case 10:
{
VisibleSvgHotkey = !VisibleSvgHotkey;
act = (11, "Введи сочетание клавиш, с помощью которых можно вставить скопированный текст", 3);
path = $"{directory}\\Assets\\HotkeysAudio\\voice14.wav";
}; break;
case 11:
{
if (button == "Забыл")
{
act = (10, "Чтобы с помощью клавиатуры вставить скопированный текст, необходимо использовать сочетание клавиш Ctrl + V.", 1);
PathSvgHotkey = "/Assets/ImgHotkeys/CtrlV.svg";
VisibleSvgHotkey = !VisibleSvgHotkey;
path = $"{directory}\\Assets\\HotkeysAudio\\voice13.wav";
}
else
{
if (TextAnswer.ToLower().Trim() == "ctrl + v")
{
WorkWithFile.UpdateValueGameProgress(1, 60, CurrentUser);
act = (12, "Почти конец! Знаешь ли ты, как стереть символ спереди курсора?", 2);
path = $"{directory}\\Assets\\HotkeysAudio\\voice15.wav";
TextShowAct = "4/5";
}
else
{
SoundPlayer snd = new SoundPlayer($"{directory}\\Assets\\HotkeysAudio\\error.wav");
snd.Play();
}
}
}; break;
case 12:
{
if (button == "Далее")
{
act = (14, "Если говоришь, знаешь, введи клавишу, с помощью которой можно стереть текст спереди курсора", 3);
path = $"{directory}\\Assets\\HotkeysAudio\\voice16.wav";
}
else
{
act = (13, "Курсор - мерцающая линия, которая дает знать, в каком месте сейчас будет изменяться текст. Чтобы стереть символ спереди курсора необходимо нажать клавишу Delete или Del.", 1);
PathSvgHotkey = "/Assets/ImgHotkeys/Del.svg";
VisibleSvgHotkey = !VisibleSvgHotkey;
path = $"{directory}\\Assets\\HotkeysAudio\\voice17.wav";
}
}; break;
case 13:
{
VisibleSvgHotkey = !VisibleSvgHotkey;
act = (14, "Введи клавишу, с помощью которой можно стереть текст спереди курсора", 3);
path = $"{directory}\\Assets\\HotkeysAudio\\voice18.wav";
}; break;
case 14:
{
if (button == "Забыл")
{
act = (13, "Курсор - мерцающая линия, которая дает знать, в каком месте сейчас будет изменяться текст. Чтобы стереть символ спереди курсора необходимо нажать клавишу Delete или Del.", 1);
PathSvgHotkey = "/Assets/ImgHotkeys/Del.svg";
VisibleSvgHotkey = !VisibleSvgHotkey;
path = $"{directory}\\Assets\\HotkeysAudio\\voice17.wav";
}
else
{
if (TextAnswer.ToLower().Trim() == "delete" || TextAnswer.ToLower().Trim() == "del")
{
WorkWithFile.UpdateValueGameProgress(1, 80, CurrentUser);
act = (15, "И мой последний вопрос. Знаешь ли ты, как закрыть приложение, в котором ты сейчас находишься, с помощью клавиш?", 2);
path = $"{directory}\\Assets\\HotkeysAudio\\voice19.wav";
TextShowAct = "5/5";
}
else
{
SoundPlayer snd = new SoundPlayer($"{directory}\\Assets\\HotkeysAudio\\error.wav");
snd.Play();
}
}
}; break;
case 15:
{
if (button == "Далее")
{
act = (17, "Если говоришь, знаешь, введи сочетание клавиш, с помощью которых можно закрыть приложение, в котором ты сейчас находишься", 3);
path = $"{directory}\\Assets\\HotkeysAudio\\voice20.wav";
}
else
{
act = (16, "Чтобы закрыть приложение, в котором ты сейчас находишься, с помощью клавиш, необходимо нажать клавиши Alt + F4.", 1);
PathSvgHotkey = "/Assets/ImgHotkeys/AltF4.svg";
VisibleSvgHotkey = !VisibleSvgHotkey;
path = $"{directory}\\Assets\\HotkeysAudio\\voice21.wav";
}
}; break;
case 16:
{
VisibleSvgHotkey = !VisibleSvgHotkey;
act = (17, "Введи сочетание клавиш, с помощью которых можно закрыть приложение, в котором ты сейчас находишься", 3);
path = $"{directory}\\Assets\\HotkeysAudio\\voice22.wav";
}; break;
case 17:
{
if (button == "Забыл")
{
act = (16, "Чтобы закрыть приложение, в котором ты сейчас находишься, с помощью клавиш, необходимо нажать клавиши Alt + F4.", 1);
PathSvgHotkey = "/Assets/ImgHotkeys/AltF4.svg";
VisibleSvgHotkey = !VisibleSvgHotkey;
path = $"{directory}\\Assets\\HotkeysAudio\\voice21.wav";
}
else
{
if (TextAnswer.ToLower().Trim() == "alt + f4")
{
WorkWithFile.UpdateValueGameProgress(1, 100, CurrentUser);
act = (18, "Ты молодец и знаешь все базовые горячие клавиши для того, чтобы изучать программирование. Надеюсь это поможет тебе выбрать направление. Пока-пока!", 1);
path = $"{directory}\\Assets\\HotkeysAudio\\voice23.wav";
TextInBtnNext = "Выйти";
}
else
{
SoundPlayer snd = new SoundPlayer($"{directory}\\Assets\\HotkeysAudio\\error.wav");
snd.Play();
}
}
}; break;
case 18:
{
GoBack();
}; break;
}
ParsAct();
}
}
}