private static void UpdateComicBook(int comicBookId)
        {
            ComicBook comicBook = Repository.GetComicBook(comicBookId);

            string command = CommandListComicBookProperties;

            while (command != CommandCancel)
            {
                switch (command)
                {
                case CommandListComicBookProperties:
                    ListComicBookProperties(comicBook);
                    break;

                case CommandSave:
                    Repository.UpdateComicBook(comicBook);
                    command = CommandCancel;
                    continue;

                default:
                    if (AttemptUpdateComicBookProperty(command, comicBook))
                    {
                        command = CommandListComicBookProperties;
                        continue;
                    }
                    else
                    {
                        ConsoleHelper.OutputLine("Sorry, but I do not undertsand");
                    }
                    break;
                }
                ConsoleHelper.OutputBlankLine();
                ConsoleHelper.Output("Commands: ");

                if (EditableProperties.Count > 0)
                {
                    ConsoleHelper.Output("Enter a number 1-{0}, ", EditableProperties.Count);
                }
                ConsoleHelper.OutputLine("Save - S, Cancel - C", false);
                command = ConsoleHelper.ReadInput("Enter a Command: ", true);
            }
            ConsoleHelper.ClearOutput();
        }
        private static void AddComicBook()
        {
            ConsoleHelper.ClearOutput();
            ConsoleHelper.OutputLine("ADD COMIC BOOK");

            var comicBook = new ComicBook();

            comicBook.SeriesId      = GetSeriesId();
            comicBook.IssueNumber   = GetIssueNumber();
            comicBook.Description   = GetDescription();
            comicBook.PublishedOn   = GetPublishedOn();
            comicBook.AverageRating = GetAverageRating();

            var comicBookArtist = new ComicBookArtist();

            comicBookArtist.ArtistId = GetArtistId();
            comicBookArtist.RoleId   = GetRoleId();
            comicBook.Artists.Add(comicBookArtist);

            Repository.AddComicBook(comicBook);
        }
        private static bool AttemptUpdateComicBookProperty(string command, ComicBook comicBook)
        {
            var successful = false;
            int lineNumber;

            int.TryParse(command, out lineNumber);
            if (lineNumber > 0 && lineNumber <= EditableProperties.Count)
            {
                string propertyName = EditableProperties[lineNumber - 1];

                switch (propertyName)
                {
                case "SeriesId":
                    comicBook.SeriesId = GetSeriesId();
                    comicBook.Series   = Repository.GetSeries(comicBook.SeriesId);
                    break;

                case "IssueNumber":
                    comicBook.IssueNumber = GetIssueNumber();
                    break;

                case "Description":
                    comicBook.Description = GetDescription();
                    break;

                case "PublishedOn":
                    comicBook.PublishedOn = GetPublishedOn();
                    break;

                case "AverageRating":
                    comicBook.AverageRating = GetAverageRating();
                    break;

                default:
                    break;
                }
                successful = true;
            }
            return(successful);
        }