Exemplo n.º 1
0
        public static void AddNewCassette()
        {
            Cassette cassette = Cassette.ReadData();

            // Добавление фильмов
            using (var unit = new ClassUnitOfWorkRep(new MineVideoRental()))
            {
                // если с таким названием кассетта уже есть
                if (unit.CassetteRepasitory.IsCassetteExists(cassette))
                {
                    Console.WriteLine("Ничего нового - такая кассетта уже есть");
                    Console.ReadLine();
                    unit.Dispose();
                    return; // то просто выходим из метода
                }

                bool enough   = false;
                bool onceMore = true;
                Console.WriteLine("Добавить фильмы:");
                do
                {
                    string answerString;
                    int    answer = 0;

                    Film film = Film.ReadData();
                    if (unit.FilmRepasitory.IsFilmExists(film))       // если такой фильм уже есть
                    {
                        film     = unit.FilmRepasitory.GetSame(film); // то берем его из базы
                        onceMore = false;                             // еще жанры к фильму не будем добавлять
                    }
                    else
                    {
                        Genre genre = Genre.ReadData();
                        if (unit.GenreRepasitory.IsGenreExists(genre))   // если такой жанр уже есть
                        {
                            genre = unit.GenreRepasitory.GetSame(genre); // то берем его из базы
                        }
                        else
                        {
                            unit.GenreRepasitory.Add(genre);
                        }

                        film.AddGenre(genre);
                        unit.FilmRepasitory.Add(film);
                        onceMore = true;
                    }

                    while (onceMore)
                    {
                        Console.Write("Добавить еще жанр к фильму? (0 - нет, 1 - да) ");
                        answerString = Console.ReadLine();

                        if (int.TryParse(answerString, out answer))
                        {
                            if (answer != 0)
                            {
                                Genre genre = Genre.ReadData();
                                if (unit.GenreRepasitory.IsGenreExists(genre))
                                {
                                    genre = unit.GenreRepasitory.GetSame(genre);
                                }
                                else
                                {
                                    unit.GenreRepasitory.Add(genre);
                                }
                                // update
                                film.AddGenre(genre);
                            }
                            else
                            {
                                onceMore = false;
                            }
                        }
                        else
                        {
                            Console.WriteLine("Что-то пошло не так... Ничего не будем добавлять");
                            onceMore = false;
                        }
                    }

                    cassette.AddFilm(film);

                    Console.Write("Добавить еще фильм? (0 - нет, 1 - да) ");
                    answerString = Console.ReadLine();
                    answer       = 0;
                    if (int.TryParse(answerString, out answer))
                    {
                        if (answer == 0)
                        {
                            enough = true;
                        }
                    }
                } while (!enough);

                unit.CassetteRepasitory.Add(cassette);
                unit.save();
            }
        }