public void TestnumberSessionsLanguageFran2() { var nCourse = new LanguageTutorial.DataModel.Course(); nCourse.Active = true; nCourse.SeansPerDay = 10; App.oCourseFrançais = nCourse; int res = 10; int real = TimerMet.numberSessionsLanguageFran(); Assert.AreEqual(res, real, "Сеансы за день"); }
public void TestnumberSessionsLanguageEng3() { var nCourse = new LanguageTutorial.DataModel.Course(); nCourse.Active = false; nCourse.SeansPerDay = 10; App.oCourseEnglish = nCourse; int res = 0; int real = TimerMet.numberSessionsLanguageEng(); Assert.AreEqual(res, real, "Сеанс не активен"); }
/// <summary> /// Заполняем поля значениями при загрузке окна /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void MetroWindow_Loaded(object sender, RoutedEventArgs e) { if (label_Settings.Content == "English") { if ( App.oCourseEnglish == null ) { App.oCourseEnglish = new Course() { LanguageId = 1, WordsPerSession = 20, WordsToStudy = 50, SeansPerDay = 5, TrueAnswers = 3 }; } Course tempCourseEnglish = new Course(); tempCourseEnglish.WordsPerSession = App.oCourseEnglish.WordsPerSession; tempCourseEnglish.WordsToStudy = App.oCourseEnglish.WordsToStudy; tempCourseEnglish.SeansPerDay = App.oCourseEnglish.SeansPerDay; tempCourseEnglish.TrueAnswers = App.oCourseEnglish.TrueAnswers; grid.DataContext = tempCourseEnglish; } else { if ( App.oCourseFrançais == null) { App.oCourseFrançais = new Course() { LanguageId = 2, WordsPerSession = 20, WordsToStudy = 50, SeansPerDay = 5, TrueAnswers = 3 }; } Course tempCourseFrançais = new Course(); tempCourseFrançais.WordsPerSession = App.oCourseFrançais.WordsPerSession; tempCourseFrançais.WordsToStudy = App.oCourseFrançais.WordsToStudy; tempCourseFrançais.SeansPerDay = App.oCourseFrançais.SeansPerDay; tempCourseFrançais.TrueAnswers = App.oCourseFrançais.TrueAnswers; grid.DataContext = tempCourseFrançais; } }
/// <summary> /// Подтверждение регистрации, создание нового профиля /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button_Accept_Click(object sender, RoutedEventArgs e) { if (App.oActiveUser == null) {// Создаём новый профиль, если профиль не выбран if ( textbox_Profile_Name.Text != "" ) {// Проверка на имя профиля if ( num_Time_Between_Seans.Value != null ) {// Проверка на часы меж сеансами if ((check_English.IsChecked == true || check_Français.IsChecked == true)) {// Проверка на то, что выбран хотя бы 1 язык // Создаём пользователя Users newUser = new Users(App.oUsersRepository.lUsers, textbox_Profile_Name.Text, (double)num_Time_Between_Seans.Value); // Добавляем пользователя в БД App.oUsersRepository.lUsers.Add(newUser); // Делаем нового пользователя текущим App.oActiveUser = newUser; // Создаём привязку пользователя к курсам и сохраняем настройки if (check_English.IsChecked == true) {// Курсы английского Course oCourseEnglish = new Course(App.oCourseRepository.lCourse, newUser.Id, App.oSettingsEnglish.Id, 0); App.oCourseRepository.lCourse.Add(oCourseEnglish); App.oSettingsRepository.lSettings.Add(App.oSettingsEnglish); } if (check_Français.IsChecked == true) {// Курсы французского Course oCourseFrançais = new Course(App.oCourseRepository.lCourse, newUser.Id, App.oSettingsFrançais.Id, 1); App.oCourseRepository.lCourse.Add(oCourseFrançais); App.oSettingsRepository.lSettings.Add(App.oSettingsFrançais); } App.Registered = true; this.Close(); } else { MessageBox.Show("Язык обучения не выбран!"); } } else { MessageBox.Show("Количество часов не указанно!"); } } else { MessageBox.Show("Имя профиля не указано!"); } } else {// Обновляем текущий профиль if ( check_English.IsChecked == true || check_Français.IsChecked == true ) {// Запоминаем новые данные // Удаляем запись из базы App.oUsersRepository.lUsers.Remove(App.oActiveUser); //Запоминаем изменения App.oActiveUser.Name = textbox_Profile_Name.Text; App.oActiveUser.TimeBetweenSeans = (double)num_Time_Between_Seans.Value; // Загружаем обратно в бд App.oUsersRepository.lUsers.Add(App.oActiveUser); this.Close(); } else { MessageBox.Show("Язык обучения не выбран!"); } } }
/// <summary> /// Подтверждение регистрации, создание нового профиля или обновление данных активного профиля /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button_Accept_Click(object sender, RoutedEventArgs e) { if (textbox_Profile_Name.Text.Trim() != "") {// Проверка на имя профиля if (num_Time_Between_Seans.Value != null) {// Проверка на часы меж сеансами if ((check_English.IsChecked == true || check_Français.IsChecked == true)) {// Проверка на то, что выбран хотя бы 1 язык if (App.oActiveUser == null || App.ChangeUser) {// Если активного пользователя нет или пользователь меняет профиль, то создаём новый профиль ( регистрация // Создаём пользователя User nUser = new User() { Name = textbox_Profile_Name.Text.Trim(), SessionPeriod = (double)num_Time_Between_Seans.Value }; // Добавляем пользователя в БД using (var db = new LanguageTutorialContext()) { var result = db.User.FirstOrDefault(user => user.Name == nUser.Name); if (result == null) { db.User.Add(nUser); db.SaveChanges(); } else { MessageBox.Show("Такое имя пользователя уже зарегистрировано!"); return; } } // Делаем текущего пользователя активным App.oActiveUser = nUser; // Создаём привязку пользователя к курсам и сохраняем настройки if (check_English.IsChecked == true) {// Курсы английского using (var db = new LanguageTutorialContext()) { var nCourse = new Course(); nCourse.Active = true; nCourse.WordsPerSession = App.oCourseEnglish.WordsPerSession; nCourse.WordsToStudy = App.oCourseEnglish.WordsToStudy; nCourse.SeansPerDay = App.oCourseEnglish.SeansPerDay; nCourse.TrueAnswers = App.oCourseEnglish.TrueAnswers; nCourse.UserId = nUser.Id; var lang = from Language in db.Language where Language.Id == 0 select Language; nCourse.LanguageId = 1; db.Course.Add(nCourse); db.SaveChanges(); for (int i = 1; i <= App.oCourseEnglish.WordsToStudy; i++) { db.WordQueue.Add(new WordQueue() { TrueAnswers = 0, IsLearned = false, UserId = nUser.Id, WordDictionaryId = i }); } db.SaveChanges(); } } if (check_Français.IsChecked == true) {// Курсы французского using (var db = new LanguageTutorialContext()) { var nCourse = new Course(); nCourse.Active = true; nCourse.WordsPerSession = App.oCourseFrançais.WordsPerSession; nCourse.WordsToStudy = App.oCourseFrançais.WordsToStudy; nCourse.SeansPerDay = App.oCourseFrançais.SeansPerDay; nCourse.TrueAnswers = App.oCourseFrançais.TrueAnswers; nCourse.UserId = nUser.Id; nCourse.LanguageId = 2; db.Course.Add(nCourse); db.SaveChanges(); for (int i = 496; i < 496 + App.oCourseFrançais.WordsToStudy; i++) { db.WordQueue.Add(new WordQueue() { TrueAnswers = 0, IsLearned = false, UserId = nUser.Id, WordDictionaryId = i }); } db.SaveChanges(); } } App.Registered = true; App.UserChanged = true; DispatcherTimer Timer = new DispatcherTimer(); Timer.Tick += new EventHandler(TimerMet.OnTimedEvent); Timer.Interval = new TimeSpan(0, (int)(App.oActiveUser.SessionPeriod * 60), 0); App.aTimer = Timer; this.Close(); } else {// Если есть активный пользователь, то необходимо обновить его настройки // Обновление параметров профиля в БД using (var db = new LanguageTutorialContext()) { var result = db.User.FirstOrDefault(user => user.Name == textbox_Profile_Name.Text.Trim()); if (result != null) { // Если пользователь с таким именем найден if (App.oActiveUser.Name != textbox_Profile_Name.Text.Trim()) {// Если пользователь сменил имя // Делаем прерывание т.к. имя уже занято MessageBox.Show("Такое имя пользователя уже зарегистрировано!"); return; } else { // Если пользователь не сменил имя // Обновляем данные активного пользователя App.oActiveUser.SessionPeriod = (double)num_Time_Between_Seans.Value; // Обновляем базу данных var original = db.User.Find(App.oActiveUser.Id); if (original != null) { original.SessionPeriod = (double)num_Time_Between_Seans.Value; db.SaveChanges(); } } } else { // Если пользователь с таким именем не найден, значит произошла смена имени. // Обновляем данные активного пользователя App.oActiveUser.Name = textbox_Profile_Name.Text.Trim(); App.oActiveUser.SessionPeriod = (double)num_Time_Between_Seans.Value; // Обновляем базу данных var original = db.User.Find(App.oActiveUser.Id); if (original != null) { original.Name = textbox_Profile_Name.Text.Trim(); original.SessionPeriod = (double)num_Time_Between_Seans.Value; db.SaveChanges(); } } } App.aTimer.Stop(); App.aTimer.Interval = new TimeSpan(0, (int)((double)num_Time_Between_Seans.Value * 60), 0); App.aTimer.Start(); // Проверка изменения курсов пользователя bool Course_Finded = false; if (check_English.IsChecked == true) {// Курсы английского //Проверка на наличие у пользователя неактивного курса английского using (var db = new LanguageTutorialContext()) { var result = db.Course.FirstOrDefault(Course => Course.UserId == App.oActiveUser.Id && Course.LanguageId == 1); if (result != null) {// Если нашли курс, то запоминаем это Course_Finded = true; if ((result as Course).Active == false) { // Если курс был неактивен, то делаем его активным (result as Course).Active = true; db.SaveChanges(); } } } if (Course_Finded) {// Если курс найден, то применяем к нему обновлённые настройки using (var db = new LanguageTutorialContext()) { var original = db.Course.Find(App.oCourseEnglish.Id); original.WordsPerSession = App.oCourseEnglish.WordsPerSession; original.WordsToStudy = App.oCourseEnglish.WordsToStudy; original.SeansPerDay = App.oCourseEnglish.SeansPerDay; original.TrueAnswers = App.oCourseEnglish.TrueAnswers; db.SaveChanges(); } } else {// Если курс не найден, но галочка стоит, то необходимо создать курс для пользователя using (var db = new LanguageTutorialContext()) { var nCourse = new Course(); nCourse.Active = true; nCourse.WordsPerSession = 20; nCourse.WordsToStudy = 50; nCourse.SeansPerDay = 5; nCourse.TrueAnswers = 3; nCourse.UserId = App.oActiveUser.Id; nCourse.LanguageId = 1; db.Course.Add(nCourse); db.SaveChanges(); App.oCourseEnglish = nCourse; for (int i = 1; i <= App.oCourseEnglish.WordsToStudy; i++) { db.WordQueue.Add(new WordQueue() { TrueAnswers = 0, IsLearned = false, UserId = App.oActiveUser.Id, WordDictionaryId = i }); } db.SaveChanges(); } } } else {// Если галочки нет //Проверка на наличие у пользователя активного курса английского using (var db = new LanguageTutorialContext()) { var result = db.Course.FirstOrDefault(Course => Course.UserId == App.oActiveUser.Id && Course.LanguageId == 1 && Course.Active == true); if (result != null) { (result as Course).Active = false; db.SaveChanges(); } } } Course_Finded = false; if (check_Français.IsChecked == true) {// Курсы английского //Проверка на наличие у пользователя неактивного курса французского using (var db = new LanguageTutorialContext()) { var result = db.Course.FirstOrDefault(Course => Course.UserId == App.oActiveUser.Id && Course.LanguageId == 2); if (result != null) {// Если нашли курс, то запоминаем это Course_Finded = true; if ((result as Course).Active == false) { // Если курс был неактивен, то делаем его активным (result as Course).Active = true; db.SaveChanges(); } } } if (Course_Finded) {// Если курс найден, то применяем к нему обновлённые настройки using (var db = new LanguageTutorialContext()) { var original = db.Course.Find(App.oCourseFrançais.Id); original.WordsPerSession = App.oCourseFrançais.WordsPerSession; original.WordsToStudy = App.oCourseFrançais.WordsToStudy; original.SeansPerDay = App.oCourseFrançais.SeansPerDay; original.TrueAnswers = App.oCourseFrançais.TrueAnswers; db.SaveChanges(); } } else {// Если курс не найден, но галочка стоит, то необходимо создать курс для пользователя using (var db = new LanguageTutorialContext()) { var nCourse = new Course(); nCourse.Active = true; nCourse.WordsPerSession = 20; nCourse.WordsToStudy = 50; nCourse.SeansPerDay = 5; nCourse.TrueAnswers = 3; nCourse.UserId = App.oActiveUser.Id; nCourse.LanguageId = 2; db.Course.Add(nCourse); db.SaveChanges(); App.oCourseFrançais = nCourse; for (int i = 496; i < 496 + App.oCourseFrançais.WordsToStudy; i++) { db.WordQueue.Add(new WordQueue() { TrueAnswers = 0, IsLearned = false, UserId = App.oActiveUser.Id, WordDictionaryId = i }); } db.SaveChanges(); } } } else {// Если галочки нет //Проверка на наличие у пользователя активного курса французского using (var db = new LanguageTutorialContext()) { var result = db.Course.FirstOrDefault(Course => Course.UserId == App.oActiveUser.Id && Course.LanguageId == 2 && Course.Active == true); if (result != null) { (result as Course).Active = false; db.SaveChanges(); } } } this.Close(); } } else { MessageBox.Show("Язык обучения не выбран!"); } } else { MessageBox.Show("Количество часов не указанно!"); } } else { MessageBox.Show("Имя профиля не указано!"); } }
/// <summary> /// Подтверждение регистрации, создание нового профиля /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button_Accept_Click(object sender, RoutedEventArgs e) { if (App.oActiveUser == null) {// Создаём новый профиль, если профиль не выбран if ( textbox_Profile_Name.Text != "" ) {// Проверка на имя профиля if ( num_Time_Between_Seans.Value != null ) {// Проверка на часы меж сеансами if ((check_English.IsChecked == true || check_Français.IsChecked == true)) {// Проверка на то, что выбран хотя бы 1 язык // Создаём пользователя Users newUser = new Users(App.oUsersRepository.lUsers, textbox_Profile_Name.Text, (double)num_Time_Between_Seans.Value); // Добавляем пользователя в БД App.oUsersRepository.lUsers.Add(newUser); // Делаем нового пользователя текущим App.oActiveUser = newUser; // Создаём привязку пользователя к курсам и сохраняем настройки if (check_English.IsChecked == true) {// Курсы английского Course oCourseEnglish = new Course(App.oCourseRepository.lCourse, newUser.Id, App.oActiveSettingsEnglish.Id, 0, true); App.oCourseRepository.lCourse.Add(oCourseEnglish); App.oSettingsRepository.lSettings.Add(App.oActiveSettingsEnglish); } if (check_Français.IsChecked == true) {// Курсы французского Course oCourseFrançais = new Course(App.oCourseRepository.lCourse, newUser.Id, App.oActiveSettingsFrançais.Id, 1, true); App.oCourseRepository.lCourse.Add(oCourseFrançais); App.oSettingsRepository.lSettings.Add(App.oActiveSettingsFrançais); } App.Registered = true; this.Close(); } else { MessageBox.Show("Язык обучения не выбран!"); } } else { MessageBox.Show("Количество часов не указанно!"); } } else { MessageBox.Show("Имя профиля не указано!"); } } else {// Обновляем текущий профиль if ( check_English.IsChecked == true || check_Français.IsChecked == true ) {// Запоминаем новые данные // Удаляем запись из базы App.oUsersRepository.lUsers.Remove(App.oActiveUser); //Запоминаем изменения App.oActiveUser.Name = textbox_Profile_Name.Text; App.oActiveUser.TimeBetweenSeans = (double)num_Time_Between_Seans.Value; // Загружаем обратно в бд App.oUsersRepository.lUsers.Add(App.oActiveUser); // Проверка изменения курсов пользователя bool Course_Finded = false; if (check_English.IsChecked == true) {// Курсы английского //Проверка на наличие у пользователя неактивного курса английского foreach ( var c in App.oCourseRepository.lCourse ) { if (c.Users_Id == App.oActiveUser.Id && c.Languages_Id == 0 ) {// Если у пользователя есть активный курс английского Course_Finded = true; } if ( c.Users_Id == App.oActiveUser.Id && c.Languages_Id == 0 && c.Active == false ) {// Если у пользователя есть неактивный курс английского // Активировать курс App.oCourseRepository.lCourse.Remove(c); c.Active = true; App.oCourseRepository.lCourse.Add(c); break; } } if ( !Course_Finded ) {// Если курс не найден, но галочка стоит, то необходимо создать курс для пользователя if ( App.oActiveSettingsEnglish == null ) { App.oActiveSettingsEnglish = new Settings(App.oSettingsRepository.lSettings, 20, 50, 5, 5); } Course oCourseEnglish = new Course(App.oCourseRepository.lCourse, App.oActiveUser.Id, App.oActiveSettingsEnglish.Id, 0, true); App.oCourseRepository.lCourse.Add(oCourseEnglish); App.oSettingsRepository.lSettings.Add(App.oActiveSettingsEnglish); } } else {// Если галочки нет //Проверка на наличие у пользователя активного курса английского foreach (var c in App.oCourseRepository.lCourse) { if (c.Users_Id == App.oActiveUser.Id && c.Languages_Id == 0 && c.Active == true) {// Если у пользователя есть активный курс английского // Деактивировать курс App.oCourseRepository.lCourse.Remove(c); c.Active = false; App.oCourseRepository.lCourse.Add(c); break; } } } Course_Finded = false; if (check_Français.IsChecked == true) {// Курсы французского //Проверка на наличие у пользователя данных курсов foreach (var c in App.oCourseRepository.lCourse) { if (c.Users_Id == App.oActiveUser.Id && c.Languages_Id == 1 ) { Course_Finded = true; } if (c.Users_Id == App.oActiveUser.Id && c.Languages_Id == 1 && c.Active == false) {// Если у пользователя есть неактивный курс французского // Активировать курс App.oCourseRepository.lCourse.Remove(c); c.Active = true; App.oCourseRepository.lCourse.Add(c); break; } } if (!Course_Finded) {// Если курс не найден, но галочка стоит, то необходимо создать курс для пользователя if (App.oActiveSettingsFrançais == null) { App.oActiveSettingsFrançais = new Settings(App.oSettingsRepository.lSettings, 20, 50, 5, 5); } Course oCourseFrançais = new Course(App.oCourseRepository.lCourse, App.oActiveUser.Id, App.oActiveSettingsEnglish.Id, 1, true); App.oCourseRepository.lCourse.Add(oCourseFrançais); App.oSettingsRepository.lSettings.Add(App.oActiveSettingsFrançais); } } else { //Проверка на наличие у пользователя данного курса foreach (var c in App.oCourseRepository.lCourse) { if (c.Users_Id == App.oActiveUser.Id && c.Languages_Id == 1 && c.Active == true) {// Если у пользователя есть активный курс французского // Деактивировать курс App.oCourseRepository.lCourse.Remove(c); c.Active = false; App.oCourseRepository.lCourse.Add(c); break; } } } this.Close(); } else { MessageBox.Show("Язык обучения не выбран!"); } } }