Пример #1
0
        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;
            }
        }