private BookItem CreateOrUpdateBook()
        {
            var bookItem = new BookItem();

            Console.WriteLine("Введите название книги:");
            bookItem.Name = ConsoleExtensions.ReadNotEmptyString();

            Console.WriteLine("Введите количество страниц:");
            bookItem.NumberOfPages = ConsoleExtensions.ReadInteger();

            Console.WriteLine("Введите год публикации:");
            bookItem.PublicationYear = ConsoleExtensions.ReadYear();

            Console.WriteLine("Введите регистрационный номер:");
            bookItem.RegNumber = ConsoleExtensions.ReadNotEmptyString();

            Console.WriteLine();
            Console.WriteLine($"{Constants.OperationConstants.AddNewSubEntityOperationId}. Добавить нового автора:");
            Console.WriteLine($"{Constants.OperationConstants.SelectSubEntityOperationId}. Выбрать из существующих:");
            var authorOperationChoice = ConsoleExtensions.ReadInteger(new List <int> {
                Constants.OperationConstants.AddNewSubEntityOperationId, Constants.OperationConstants.SelectSubEntityOperationId
            });

            switch (authorOperationChoice)
            {
            case Constants.OperationConstants.SelectSubEntityOperationId:
            {
                Console.WriteLine("Существующие авторы:");
                Console.WriteLine($"Нажмите \"{Constants.OperationConstants.ReturnOperationId}\" для добавления нового автора");
                var selectedAuthorId = SelectAuthorFromList();

                if (selectedAuthorId == Constants.OperationConstants.ReturnOperationId)
                {
                    InputAuthorFields(bookItem);
                }
                else
                {
                    bookItem.AuthorId = selectedAuthorId;
                }

                break;
            }

            case Constants.OperationConstants.AddNewSubEntityOperationId:
            {
                InputAuthorFields(bookItem);
                break;
            }
            }

            Console.WriteLine();
            Console.WriteLine($"{Constants.OperationConstants.AddNewSubEntityOperationId}. Добавить нового издателя:");
            Console.WriteLine($"{Constants.OperationConstants.SelectSubEntityOperationId}. Выбрать из существующих:");
            var publisherOperationChoice = ConsoleExtensions.ReadInteger(new List <int> {
                Constants.OperationConstants.AddNewSubEntityOperationId, Constants.OperationConstants.SelectSubEntityOperationId
            });

            switch (publisherOperationChoice)
            {
            case Constants.OperationConstants.SelectSubEntityOperationId:
            {
                Console.WriteLine("Существующие издатели:");
                Console.WriteLine($"Нажмите \"{Constants.OperationConstants.ReturnOperationId}\" для добавления нового издателя");
                var selectedPublisherId = SelectPublisherFromList();

                if (selectedPublisherId == Constants.OperationConstants.ReturnOperationId)
                {
                    InputPublisherFields(bookItem);
                }
                else
                {
                    bookItem.PublisherId = selectedPublisherId;
                }

                break;
            }

            case Constants.OperationConstants.AddNewSubEntityOperationId:
            {
                InputPublisherFields(bookItem);
                break;
            }
            }

            bookItem.IsBookInLibrary = false;

            return(bookItem);
        }