private void Execute(Actions action) { switch (action) { case Actions.New: if (NewBtn.IsEnabled) { SetNewState(); } break; case Actions.Save: if (SaveBtn.IsEnabled) { var text = ""; var strs = NoteTextArea.Text.Split(new [] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries); for (var i = 0; i < strs.Length - 1; i++) { var str = strs[i].Trim(); if (str.Length != 0) { text += str + Environment.NewLine; } } text += strs[strs.Length - 1]; if (ListView.SelectedIndex == -1) { var newId = DbContext.Notes.Count == 0 ? 1 : DbContext.Notes.Max(m => m.Id) + 1; _selectedNote = new Note(newId, text); DbContext.Notes.Add(_selectedNote); NoteViewModels.Add(_selectedNote); ListView.SelectedIndex = NoteViewModels.Count - 1; } else { _selectedNote.Content = text; _selectedNote.LastModTime = DateTime.Now; } DbContext.SaveChanged(); _textChanged = false; UpdateState(); } break; case Actions.Finish: if (FinishBtn.IsEnabled) { NoteViewModels.RemoveAt(ListView.SelectedIndex); _selectedNote.Finished = true; _selectedNote.LastModTime = DateTime.Now; DbContext.SaveChanged(); SetNewState(); } break; case Actions.Delete: if (DeleteBtn.IsEnabled) { NoteViewModels.RemoveAt(ListView.SelectedIndex); _selectedNote.Deleted = true; _selectedNote.LastModTime = DateTime.Now; DbContext.SaveChanged(); SetNewState(); } break; case Actions.Close: Close(); break; } }