Exemple #1
0
 public void GetMovieByCineIdTest1()
 {
     Assert.NotNull(mbl.GetMoviesByCineId(1));
 }
        public void CreateSchedule(User us)
        {
            Console.Clear();
            string row1 = "=====================================================================";
            string row2 = "---------------------------------------------------------------------";

            Console.WriteLine(row1);
            Console.WriteLine("Tạo lịch chiếu phim.");
            Console.WriteLine(row2);
            Console.WriteLine("[Danh sách Phim]\n");
            MovieBL mbl = new MovieBL();

            string[]     properties = { "MovieId", "MovieName", "MovieCategory", "MovieTime", "MovieDateStart", "MovieDateEnd" };
            string[]     cols       = { "Mã phim", "Tên phim", "Thể loại", "Thời lượng(Phút)", "Ngày bắt đầu", "Ngày kết thúc" };
            List <Movie> movies     = mbl.GetMoviesByCineId(us.Cine.CineId);

            // cine = cbl.GetCinemaByCineId(us.Cine.CineId);
            cs.DisplayTableData(movies, properties, cols, "dd/MM/yyyy");
            Console.WriteLine(row1);
            Console.Write("\nChọn phim(theo mã): "); sche.MovieId = cs.input(Console.ReadLine());
            while (mbl.GetMovieByMovieId(sche.MovieId) == null)
            {
                Console.Write("Không có mã này, mời bạn nhập lại: "); sche.MovieId = cs.input(Console.ReadLine());
            }
            cine = us.Cine;
            Console.Clear();
            List <ScheduleDetail> lsd = null;
            int?       scheNewId;
            ScheduleBL sbl     = new ScheduleBL();
            Schedule   scheNew = null;

            while (true)
            {
                // row1 = "========================================";
                // row2 = "----------------------------------------";
                Console.WriteLine(row1);
                Console.WriteLine("Tạo lịch chiếu phim.");
                Console.WriteLine(row2);
                Console.WriteLine("[Danh sách phòng]\n");
                string[] proper = { "RoomId", "RoomName", "RTName" };
                string[] col    = { "Mã phòng", "Tên phòng", "Loại phòng" };
                lr = rbl.GetRoomsByCineId(1);
                cs.DisplayTableData(lr, proper, col, null);
                Console.WriteLine(row1);
                Console.Write("\nChọn phòng(theo mã): "); sche.RoomId = cs.input(Console.ReadLine());
                while (rbl.GetRoomByRoomId(sche.RoomId) == null)
                {
                    Console.Write("Không có mã này, mời bạn nhập lại: "); sche.RoomId = cs.input(Console.ReadLine());
                }
                // while (sbl.GetScheduleByMovieIdAndRoomId(sche.MovieId, sche.RoomId) != null)
                // {
                //     Console.Write("Trùng lịch chiếu, mời bạn nhập lại: ");
                //     sche.RoomId = cs.input(Console.ReadLine());
                //     while (rbl.GetRoomByRoomId(sche.RoomId) == null)
                //     {
                //         Console.Write("Không có mã này, mời bạn nhập lại: "); sche.RoomId = cs.input(Console.ReadLine());
                //     }
                // }
                scheNew = sbl.GetScheduleByMovieIdAndRoomId(sche.MovieId, sche.RoomId);
                if (scheNew == null)
                {
                    scheNewId = null;
                }
                else
                {
                    scheNewId = scheNew.ScheId;
                }
                movie = mbl.GetMovieByMovieId(sche.MovieId);
                room  = rbl.GetRoomByRoomId(sche.RoomId);

                lsd = DisplayTime(movie, room, scheNew);
                // Console.Write("Không tìm thấy khung giờ hoặc trùng, bạn có muốn chọn lại?(C/K)");
                // string choice = Console.ReadLine();
                // switch (choice)
                // {
                //     case "C":
                //         scheNew = sbl.GetScheduleByMovieIdAndRoomId(sche.MovieId, sche.RoomId);
                //         movie = mbl.GetMovieByMovieId(sche.MovieId);
                //         room = rbl.GetRoomByRoomId(sche.RoomId);
                //         lsd = DisplayTime(movie, room, scheNew);
                //         break;
                //     case "c":
                //         scheNew = sbl.GetScheduleByMovieIdAndRoomId(sche.MovieId, sche.RoomId);
                //         movie = mbl.GetMovieByMovieId(sche.MovieId);
                //         room = rbl.GetRoomByRoomId(sche.RoomId);
                //         lsd = DisplayTime(movie, room, scheNew);
                //         break;
                //     case "K":
                //         mn.menuManager(us);
                //         return;
                //     case "k":
                //         mn.menuManager(us);
                //         return;
                //     default:
                //         continue;
                //         // break;
                // }
                if (lsd != null)
                {
                    break;
                }

                Console.Clear();
                Console.WriteLine("Phim: {0} tại phòng: {1} đã đủ suất chiếu !", movie.MovieName, room.RoomName);
            }

            Console.Clear();
            Console.WriteLine(row1);
            Console.WriteLine("Tạo lịch chiếu phim.");
            Console.WriteLine(row2);
            Console.WriteLine("[Chi tiết lịch chiếu]\n");
            Console.WriteLine("Bộ phim: " + movie.MovieName);
            Console.WriteLine("Chiếu tại rạp: " + cine.CineName);
            Console.WriteLine("Chiếu tại phòng: " + room.RoomName);
            Console.WriteLine("Trong các khung giờ lặp mỗi ngày từ ngày {0} - {1} cụ thể như sau: ", movie.MovieDateStart.ToString("dd/MM/yyyy"), movie.MovieDateEnd.ToString("dd/MM/yyyy"));
            int    count    = 1;
            string timeline = "";

            if (scheNew != null)
            {
                timeline = scheNew.ScheTimeline;
            }

            for (int i = 1; i < lsd.Count - 1; i++)
            {
                if (lsd[0].SchedTimeStart?.ToString("HH:mm") == lsd[i].SchedTimeStart?.ToString("HH:mm"))
                {
                    break;
                }
                count++;
            }
            for (int i = 0; i < count; i++)
            {
                try
                {
                    Console.WriteLine("{0}.{1} -> {2}", i + 1, lsd[i].SchedTimeStart?.ToString("HH:mm"), lsd[i].SchedTimeEnd?.ToString("HH:mm"));
                    if (timeline == "")
                    {
                        timeline = timeline + lsd[i].SchedTimeStart?.ToString("HH:mm");
                    }
                    else
                    {
                        timeline = timeline + ", " + lsd[i].SchedTimeStart?.ToString("HH:mm");
                    }
                }
                catch (System.Exception)
                {
                }
            }
            // foreach (var item in lsd)
            // {
            //     if (Schedule)
            //     {

            //     }
            //     {
            //         Console.WriteLine("{0}.{1} {2} -> {3}", count, item.SchedTimeEnd?.ToString("dd/MM/yyyy"), item.SchedTimeStart?.ToString("HH:mm"), item.SchedTimeEnd?.ToString("HH:mm"));
            //     }
            //     if (timeline == "")
            //     {
            //         timeline = timeline + item.SchedTimeStart?.ToString("HH:mm");
            //     }
            //     else
            //     {
            //         timeline = timeline + ", " + item.SchedTimeStart?.ToString("HH:mm");
            //     }
            //     count++;
            // }
            sche = new Schedule(scheNewId, 0, null, timeline, sche.RoomId, sche.MovieId, lsd);
            Console.WriteLine(row1);
            while (true)
            {
                Console.Write("Xác nhận tạo lịch chiếu?(C/K)");
                string choice = Console.ReadLine();
                switch (choice)
                {
                case "C":
                    sbl.CreateSchedule(sche);
                    break;

                case "c":
                    sbl.CreateSchedule(sche);
                    break;

                case "K":
                    break;

                case "k":
                    break;

                default:
                    continue;
                    // break;
                }
                break;
            }
            Console.Clear();

            mn.menuManager(us);
        }