// add or edit item button private void addItemkBtn_Click(object sender, RoutedEventArgs e) { // get data from check-boxes and autors-listbox GetAuthors(); GetSubGeners(); // create new item if (_mode == AddEditMode.Add) { _feedback = ItemFactoryAndEditor.TryCreateItem(_type, titleTbx.Text, _currentItemId, _mainGenre, numCopTbx.Text, volTbx.Text); if (_feedback.IsWorking) { _item = _feedback.Data; } } // edit item or add to created item fields than not in constructor if (_mode == AddEditMode.Edit || _feedback.IsWorking) { _feedback = ItemFactoryAndEditor.TryEdit(_item, titleTbx.Text, publisherTbx.Text, annotTbx.Text, placeTbx.Text, yearTbx.Text, editionTbx.Text, _subGeners, _authors, volTbx.Text); if (_feedback.IsWorking) { _item = _feedback.Data; } } // add new item to library if (_feedback.IsWorking && _mode == AddEditMode.Add) { Respone <IEnumerable <Guid> > tempFeedback = _library.AddItem(_item); if (!tempFeedback.IsWorking) { errorTbx.Text = tempFeedback.Message; } else { this.Frame.Navigate(typeof(SearchBook), _item); } } // go to library if item successfully edited if (_feedback.IsWorking && _mode == AddEditMode.Edit) { this.Frame.Navigate(typeof(SearchBook), _item); } if (!_feedback.IsWorking) { errorTbx.Text = _feedback.Message; } }