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();
            }
        }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            var comedy = new Genre {
                Type = "Комедия"
            };
            var drama = new Genre {
                Type = "Драма"
            };
            var melodrama = new Genre {
                Type = "Мелодрама"
            };
            var military = new Genre {
                Type = "Военный"
            };
            var musical = new Genre {
                Type = "Мюзикл"
            };
            var fantasy = new Genre {
                Type = "Фэнтези"
            };

            var Devchata = new Film {
                Title = "Девчата", Year = 1962
            };

            Devchata.AddGenre(comedy);
            Devchata.AddGenre(melodrama);

            var Casablanca = new Film {
                Title = "Касабланка", Year = 1942
            };

            Casablanca.AddGenre(drama);
            Casablanca.AddGenre(melodrama);
            Casablanca.AddGenre(military);

            var SleepingBeauty = new Film {
                Title = "Спящая красавица", Year = 1958
            };

            SleepingBeauty.AddGenre(musical);
            SleepingBeauty.AddGenre(melodrama);
            SleepingBeauty.AddGenre(fantasy);

            Cassette cassette1 = new Cassette {
                Amount = 1, Title = "Странное собрание"
            };

            cassette1.AddFilm(Casablanca);
            cassette1.AddFilm(Devchata);

            Cassette cassette4 = new Cassette {
                Amount = 4, Title = "Коллекция Disney. Спящая красавица"
            };

            cassette4.AddFilm(SleepingBeauty);

            var client = new Client {
                Name = new Name("Таня", "Тугодубодумова")
            };

            var order1 = new Order {
                OrderStart = new DateTime(2019, 1, 14), OrderFinish = new DateTime(2019, 1, 18)
            };

            order1.AddCassette(cassette1);

            var order2 = new Order {
                OrderStart = new DateTime(2019, 1, 19), OrderFinish = new DateTime(2019, 1, 26)
            };

            order2.AddCassette(cassette4);

            client.AddOrder(order1);
            client.AddOrder(order2);

            order1.Close(new DateTime(2019, 1, 19));
            order2.Close(new DateTime(2019, 1, 20));



            using (ClassUnitOfWorkRep unit = new ClassUnitOfWorkRep(new MineVideoRental()))
            {
                unit.GenreRepasitory.Add(comedy);
                unit.GenreRepasitory.Add(drama);
                unit.GenreRepasitory.Add(melodrama);
                unit.GenreRepasitory.Add(military);
                unit.GenreRepasitory.Add(musical);
                unit.GenreRepasitory.Add(fantasy);

                unit.FilmRepasitory.Add(Devchata);
                unit.FilmRepasitory.Add(Casablanca);
                unit.FilmRepasitory.Add(SleepingBeauty);

                unit.CassetteRepasitory.Add(cassette1);
                unit.CassetteRepasitory.Add(cassette4);

                unit.ClientRepasitory.Add(client);

                unit.OrderRepasitory.Add(order1);
                unit.OrderRepasitory.Add(order2);

                unit.save();

                IList <Cassette> allCassettes = unit.CassetteRepasitory.GetAll().ToList();

                Console.WriteLine("All cassettes:");
                foreach (var cassette in allCassettes)
                {
                    Console.WriteLine($"Cassette id={cassette.cassetteID}, amount={cassette.Amount}");
                }

                IList <Cassette> minCassettes = unit.CassetteRepasitory.GetCassetteMin(3).ToList();
                Console.WriteLine("Cassettes which have amount < 3 :");
                foreach (var cassette in minCassettes)
                {
                    Console.WriteLine($"Cassette id={cassette.cassetteID}, amount={cassette.Amount}");
                }

                IList <Cassette> maxCassettes = unit.CassetteRepasitory.GetCassetteMax(3).ToList();
                Console.WriteLine("Cassettes which have amount >= 3 :");
                foreach (var cassette in maxCassettes)
                {
                    Console.WriteLine($"Cassette id={cassette.cassetteID}, amount={cassette.Amount}");
                }

                // var film = unit.FilmRepasitory.GetFilm("Девчата");
                // var genres = unit.GenreRepasitory.GetFilmGenres(film);

                // Console.WriteLine($"Genres of film {film.Title}:");
                //foreach (var g in genres)
                //  Console.WriteLine(g.Type);



                IList <Cassette> allcassettes = unit.CassetteRepasitory.GetAll().ToList();
                foreach (var cassette in allcassettes)
                {
                    Console.WriteLine($"Cassette ID={cassette.cassetteID}, amount={cassette.Amount}");
                }


                IList <Cassette> mincassettes = unit.CassetteRepasitory.GetCassetteMin(3).ToList();
                foreach (var mincassette in mincassettes)
                {
                    Console.WriteLine($"Min Cassette ={mincassette.cassetteID}, amount={mincassette.Amount}");
                }

                IList <Cassette> maxcassettes = unit.CassetteRepasitory.GetCassetteMax(55).ToList();
                foreach (var maxcassette in maxcassettes)
                {
                    Console.WriteLine($"Max Cassette ={maxcassette.cassetteID}, amount={maxcassette.Amount}");
                }
            }
        }