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; } }
public void UpdateAll() { using (SEWContext db = new SEWContext()) { foreach (var item in Words) { db.Entry(item).State = EntityState.Modified; } db.SaveChanges(); } }
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); } } }
private void RemoveItem() { using (SEWContext db = new SEWContext()) { if (SelectedWord != null) { db.Entry(SelectedWord).State = EntityState.Deleted; db.SaveChanges(); Words.Remove(SelectedWord); } } }
private void RemoveItem() { using (SEWContext db = new SEWContext()) { if (SelectedCategory != null) { db.Entry(SelectedCategory).State = EntityState.Deleted; db.SaveChanges(); Categories.Remove(SelectedCategory); } } }
private void AddItem() { Category category = new Category(); Categories.Insert(0, category); using (SEWContext db = new SEWContext()) { db.Categories.Add(category); db.SaveChanges(); } SelectedCategory = category; }
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); } } }
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); } } }
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); } } }
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; }
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); } } }
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); } } } }
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; }
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(); } }
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(); }