コード例 #1
0
ファイル: Remembering.xaml.cs プロジェクト: Xefise/SEW
        private async void ShowNewWord()
        {
            #region Change visibility
            TBlAnswer.Visibility  = Visibility.Hidden;
            TBoxCW.Visibility     = Visibility.Visible;
            BCW.Visibility        = Visibility.Visible;
            BYes.Visibility       = Visibility.Hidden;
            BNo.Visibility        = Visibility.Hidden;
            DGExamples.Visibility = Visibility.Hidden;
            BRW.Visibility        = Visibility.Hidden;
            #endregion

            if (Words.Count == 0)
            {
                using (SEWContext db = new SEWContext())
                {
                    AddWords();
                }

                if (Words.Count == 0) // Если ничего нового не нашло
                {
                    TBoxCW.Visibility  = Visibility.Hidden;
                    BCW.Visibility     = Visibility.Hidden;
                    BRW.Visibility     = Visibility.Hidden;
                    TBoxCW.IsEnabled   = false;
                    BCW.IsEnabled      = false;
                    BRW.IsEnabled      = false;
                    TBlWord.Visibility = Visibility.Visible;

                    TBlWord.Text = "Слова для повторения закончились.\nДобавьте новые или отдохните";
                    await Task.Run(() => WaitingForNewWords());

                    ShowNewWord();
                    return;
                }
            }
            DisplayedWord         = Words.Dequeue();
            Examples              = new ObservableCollection <Example>();
            DGExamples.IsReadOnly = false;
            using (SEWContext db = new SEWContext())
            {
                List <Example> temp = db.Examples.Where(c => c.WordID == DisplayedWord.ID).ToList();
                foreach (var item in temp)
                {
                    Examples.Add(item);
                }
            }

            if (DisplayedWord.Progress == 0)
            {
                TBlWord.Text = DisplayedWord.English + DisplayedWord.Transcription;
            }
            else
            {
                TBlWord.Text = DisplayedWord.Russian;
            }
        }
コード例 #2
0
 public void UpdateAll()
 {
     using (SEWContext db = new SEWContext())
     {
         foreach (var item in Words)
         {
             db.Entry(item).State = EntityState.Modified;
         }
         db.SaveChanges();
     }
 }
コード例 #3
0
ファイル: Remembering.xaml.cs プロジェクト: elanaliev/SEW
 void AddWords()
 {
     using (SEWContext db = new SEWContext())
     {
         List <Word> temp = db.Words.Where(c => c.CanBeDisplayedAt < DateTime.Now).Where(c => c.Category.Included == true).OrderByDescending(c => c.Progress).ToList();
         foreach (var item in temp)
         {
             Words.Enqueue(item);
         }
     }
 }
コード例 #4
0
 private void RemoveItem()
 {
     using (SEWContext db = new SEWContext())
     {
         if (SelectedWord != null)
         {
             db.Entry(SelectedWord).State = EntityState.Deleted;
             db.SaveChanges();
             Words.Remove(SelectedWord);
         }
     }
 }
コード例 #5
0
ファイル: CategoryVM.cs プロジェクト: elanaliev/SEW
 private void RemoveItem()
 {
     using (SEWContext db = new SEWContext())
     {
         if (SelectedCategory != null)
         {
             db.Entry(SelectedCategory).State = EntityState.Deleted;
             db.SaveChanges();
             Categories.Remove(SelectedCategory);
         }
     }
 }
コード例 #6
0
ファイル: CategoryVM.cs プロジェクト: elanaliev/SEW
        private void AddItem()
        {
            Category category = new Category();

            Categories.Insert(0, category);
            using (SEWContext db = new SEWContext())
            {
                db.Categories.Add(category);
                db.SaveChanges();
            }
            SelectedCategory = category;
        }
コード例 #7
0
ファイル: Remembering.xaml.cs プロジェクト: elanaliev/SEW
        void UpdateWordsList() // Пересобираем список каждые ~2min
        {
            Thread.Sleep(111111);

            Words.Clear();
            using (SEWContext db = new SEWContext())
            {
                List <Word> temp = db.Words.Where(c => c.CanBeDisplayedAt < DateTime.Now).Where(c => c.Category.Included == true).OrderByDescending(c => c.Progress).ToList();
                foreach (var item in temp)
                {
                    Words.Enqueue(item);
                }
            }
        }
コード例 #8
0
        public WordVM(MainWindow main, long catID)
        {
            mainWindow = main;
            categoryID = catID;

            Words = new ObservableCollection <Word>();
            using (SEWContext db = new SEWContext())
            {
                List <Word> temp = db.Words.Where(c => c.CategoryID == categoryID).OrderByDescending(c => c.Progress).ToList();
                foreach (var item in temp)
                {
                    Words.Add(item);
                }
            }
        }
コード例 #9
0
ファイル: CategoryVM.cs プロジェクト: elanaliev/SEW
        public CategoryVM(MainWindow main)
        {
            mainWindow = main; // WOW! We've main window! | For GoToCategoryWords()

            Categories = new ObservableCollection <Category>();
            using (SEWContext db = new SEWContext())
            {
                List <Category> temp = db.Categories.ToList();
                foreach (var item in temp)
                {
                    item.WordCount = db.Words.Where(c => c.CategoryID == item.ID).Count();
                    Categories.Add(item);
                }
            }
        }
コード例 #10
0
        private void AddItem()
        {
            Example example = new Example
            {
                WordID = wordID
            };

            Examples.Insert(0, example);
            using (SEWContext db = new SEWContext())
            {
                db.Examples.Add(example);
                db.SaveChanges();
            }
            SelectedExample = example;
        }
コード例 #11
0
        public ExampleVM(MainWindow window, long wordid)
        {
            wordID = wordid;
            Window = window;

            Examples = new ObservableCollection <Example>();
            using (SEWContext db = new SEWContext())
            {
                List <Example> temp = db.Examples.Where(c => c.WordID == wordID).ToList();
                foreach (var item in temp)
                {
                    Examples.Add(item);
                }
            }
        }
コード例 #12
0
        private void SearchWords()
        {
            Words.Clear();

            using (SEWContext db = new SEWContext())
            {
                List <Word> temp = db.Words.OrderByDescending(c => c.Progress).ToList();
                foreach (var item in temp)
                {
                    if (item.English.ToLower().Contains(SearchText.ToLower()) || item.Russian.ToLower().Contains(SearchText.ToLower()))
                    {
                        Words.Add(item);
                    }
                }
            }
        }
コード例 #13
0
        private void AddItem()
        {
            Word word = new Word
            {
                English          = "new word",
                Russian          = "новое слово",
                CanBeDisplayedAt = DateTime.Now,
                Progress         = 0,
                CategoryID       = categoryID
            };

            Words.Insert(0, word);
            using (SEWContext db = new SEWContext())
            {
                db.Words.Add(word);
                db.SaveChanges();
            }
            SelectedWord = word;
        }
コード例 #14
0
        private void ResetWord()
        {
            if (SelectedWord == null)
            {
                return;
            }

            SelectedWord.Progress         = 0;
            SelectedWord.Status           = "";
            SelectedWord.CanBeDisplayedAt = DateTime.Now;

            if (Properties.Settings.Default.TTResetShowed == false)
            {
                System.Windows.MessageBox.Show("Прогресс сброшен! (Это сообщение больше не появится)");
                Properties.Settings.Default.TTResetShowed = true;
            }

            using (SEWContext db = new SEWContext())
            {
                db.Entry(SelectedWord).State = EntityState.Modified;
                db.SaveChanges();
            }
        }
コード例 #15
0
ファイル: Remembering.xaml.cs プロジェクト: elanaliev/SEW
        private void Answer(bool Reply)
        {
            if (Reply)
            {
                switch (DisplayedWord.Progress)
                {
                case 0:
                    DisplayedWord.Progress         = 7;
                    DisplayedWord.CanBeDisplayedAt = DateTime.MaxValue;
                    DisplayedWord.Status           = "already known";
                    break;

                case 1:
                    DisplayedWord.Progress         = 2;
                    DisplayedWord.CanBeDisplayedAt = DateTime.Now.AddMinutes(20);
                    if (DisplayedWord.Status != "learning")
                    {
                        DisplayedWord.Status = "start";
                    }
                    break;

                case 2:
                    DisplayedWord.Progress         = 3;
                    DisplayedWord.CanBeDisplayedAt = DateTime.Now.AddDays(1);
                    DisplayedWord.Status           = "learning";
                    break;

                case 3:
                    DisplayedWord.Progress         = 4;
                    DisplayedWord.CanBeDisplayedAt = DateTime.Now.AddDays(2);
                    break;

                case 4:
                    DisplayedWord.Progress         = 5;
                    DisplayedWord.CanBeDisplayedAt = DateTime.Now.AddDays(14);
                    break;

                case 5:
                    DisplayedWord.Progress         = 6;
                    DisplayedWord.CanBeDisplayedAt = DateTime.Now.AddDays(60);
                    DisplayedWord.Status           = "almost";
                    break;

                case 6:
                    DisplayedWord.Progress         = 7;
                    DisplayedWord.CanBeDisplayedAt = DateTime.MaxValue;
                    DisplayedWord.Status           = "learned";
                    break;
                }
            }
            else
            {
                if (DisplayedWord.Progress == 0)
                {
                    DisplayedWord.Progress         = 1;
                    DisplayedWord.CanBeDisplayedAt = DateTime.Now.AddMinutes(2);
                    DisplayedWord.Status           = "new";
                }
                else
                {
                    DisplayedWord.Progress         = 1;
                    DisplayedWord.CanBeDisplayedAt = DateTime.Now.AddMinutes(2);
                    DisplayedWord.Status           = "learning";
                }
            }

            using (SEWContext db = new SEWContext()) //Save
            {
                db.Entry(DisplayedWord).State = EntityState.Modified;
                db.SaveChanges();
            }

            ShowNewWord();
        }