예제 #1
0
        public void SelectBook(ArrayList memberArrayList, ArrayList bookArrayList)                                   // '도서 검색' 기능 실행
        {
            display.Outline();
            Console.SetCursorPosition(30, 11);
            Console.Write("검색할 도서의 제목 입력하세요. : ");
            string selectBookName = "";

            selectBookName = exception.EnglishOrKoreanOrNumberInput(selectBookName);                                                      // 검색할 도서의 제목이 영문자 혹은 한글 혹은 숫자인지 확인
            foreach (BookVO bookList in bookArrayList)
            {
                if (bookList.BookName.Contains(selectBookName))                                                      // 이미 등록된 도서의 제목 중 검색할 도서의 제목을 포함하는 도서가 있는 경우
                {
                    display.BookUpperOutline();                                                                      // 검색한 도서의 정보 출력
                    Console.SetCursorPosition(5, 5);
                    Console.Write(bookList.BookNo);
                    Console.SetCursorPosition(12, 5);
                    Console.Write(bookList.BookName);
                    Console.SetCursorPosition(34, 5);
                    Console.Write(bookList.BookAuthor);
                    Console.SetCursorPosition(53, 5);
                    Console.Write(bookList.BookPublisher);
                    Console.SetCursorPosition(74, 5);
                    Console.Write(bookList.BookPrice);
                    Console.SetCursorPosition(86, 5);
                    Console.Write(bookList.BookReservation);
                    if (bookList.BookReservation == "대여중")                                                         // 검색한 도서가 대여중이라면 '반납예정일'도 출력
                    {
                        Console.SetCursorPosition(97, 5);
                        Console.Write(bookList.BookReturnDate.Year + "년 " + bookList.BookReturnDate.Month + "월 " + bookList.BookReturnDate.Day + "일");
                    }
                    Console.WriteLine();
                    Console.WriteLine();
                    Console.Write("뒤로 가려면 'q'를 입력하세요.");
                    ConsoleKeyInfo key;
                    while (true)
                    {
                        key = Console.ReadKey(true);                                                                  // 입력값의 ConsoleKey가 'q' 혹은 'ㅂ'이면 회원 관리 페이지로 이동
                        if (key.KeyChar == 'q' || key.KeyChar == 'ㅂ')
                        {
                            display.PrintMemberPage();
                            RunBookPage(memberArrayList, bookArrayList);
                            break;
                        }
                        else
                        {
                            Console.Write("");
                        }
                    }
                    break;
                }
            }
            display.Outline();                                                                                         // 검색할 도서 번호가 이미 등록된 도서의 번호 중 일치하는 값이 없는 경우
            Console.SetCursorPosition(40, 11);
            Console.Write(selectBookName + "의 도서 정보를 찾을 수 없습니다.");
            System.Threading.Thread.Sleep(2000);
            display.PrintBookPage();
            RunBookPage(memberArrayList, bookArrayList);
        }
        public void PrintRentAndReturnBookList(ArrayList memberArrayList, ArrayList bookArrayList)      // 대여 내역 기능 실행
        {
            BookVO bookVO = new BookVO();
            int    row    = 5;                                                                          // 대여 내역을 출력할 첫 번째 행을 저장

            display.BookUpperOutline();                                                                 // 도서 정보 카테고리 Outline 출력
            foreach (BookVO bookList in bookArrayList)
            {
                if (bookList.BookReservation == "대여 가능")                                            // 먼저 등록된 도서의 대여 정보가 '대여 가능'인 도서만 출력
                {
                    Console.SetCursorPosition(5, row);
                    Console.Write(bookList.BookNo);
                    Console.SetCursorPosition(12, row);
                    Console.Write(bookList.BookName);
                    Console.SetCursorPosition(34, row);
                    Console.Write(bookList.BookAuthor);
                    Console.SetCursorPosition(53, row);
                    Console.Write(bookList.BookPublisher);
                    Console.SetCursorPosition(74, row);
                    Console.Write(bookList.BookPrice);
                    Console.SetCursorPosition(86, row);
                    Console.Write(bookList.BookReservation);
                    row = row + 2;                                                                      // 행의 값을 2씩 증가
                }
            }
            foreach (BookVO bookList in bookArrayList)
            {
                if (bookList.BookReservation == "대여중")                                               // 대여 정보가 '대여중'인 도서 출력
                {
                    if (row == 5)
                    {
                        display.BookUpperOutline();                                                     // 등록된 모든 도서가 대여중인 경우 도서 정보 카테고리 Outline 출력
                    }
                    Console.SetCursorPosition(5, row);
                    Console.Write(bookList.BookNo);
                    Console.SetCursorPosition(12, row);
                    Console.Write(bookList.BookName);
                    Console.SetCursorPosition(34, row);
                    Console.Write(bookList.BookAuthor);
                    Console.SetCursorPosition(53, row);
                    Console.Write(bookList.BookPublisher);
                    Console.SetCursorPosition(74, row);
                    Console.Write(bookList.BookPrice);
                    Console.SetCursorPosition(86, row);
                    Console.Write(bookList.BookReservation);
                    Console.SetCursorPosition(97, row);
                    Console.Write(bookList.BookReturnDate.Year + "년 " + bookList.BookReturnDate.Month + "월 " + bookList.BookReturnDate.Day + "일");      // 대여정보가 '대여중'인 도서는 반납예정일도 출력
                    row = row + 2;
                }
            }
            Console.WriteLine();
            Console.WriteLine();
            Console.Write("뒤로 가려면 'q'를 입력하세요.");
            ConsoleKeyInfo key;

            while (true)
            {
                key = Console.ReadKey(true);
                if (key.KeyChar == 'q' || key.KeyChar == 'ㅂ')
                {
                    display.PrintRentAndReturnBook();
                    RunRentAndReturnBook(memberArrayList, bookArrayList);
                    break;
                }
                else
                {
                    Console.Write("");
                }
            }
        }