// 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;
            }
        }