Exemplo n.º 1
0
        public void ViewMenu()
        {
            while (true)
            {
                print.Menu("도서대여");
                menuSelect = CancelKey.ReadLineWithCancel(); //중간에 ESC키 받으면 menuSelect 값이 null이 되어
                if (menuSelect == null)
                {
                    menu.ViewMenu();                                //이전 메뉴로 나감
                }
                if (errorCheck.Number(menuSelect, "5지선다") == false) //입력받은 menuSelect의 오류값이 false면(오류없음) 반복문 나감
                {
                    break;
                }
                print.MenuErrorMsg("5지선다오류");
            }
            switch (int.Parse(menuSelect))
            {
            case RENT:
                RentMenu();
                break;

            case RETURN:
                Return();
                break;

            case EXTENSION:
                Extension();
                break;

            case PREVIOUS:
                menu.ViewMenu();
                break;
            }
        }
Exemplo n.º 2
0
        public Book BookEdit(Book inputBook, BookManagement bookManagement)
        {
            string count;

            Console.Clear();
            Console.WriteLine("\n\n\t---------------------------------수정할 도서 기존 정보--------------------------------");
            Console.WriteLine("\t도서 제목 : {0}", inputBook.BookName);
            Console.WriteLine("\t출판사 : {0}", inputBook.Publisher);
            Console.WriteLine("\t저자 : {0}", inputBook.Author);
            Console.WriteLine("\t도서 가격 : {0}", inputBook.Price);
            Console.WriteLine("\t수량 : {0}", inputBook.Count + "\n");
            Console.WriteLine("\t--------------------------------------------------------------------------------------");

            Console.WriteLine("\n\n\t---------------------------------수정할 도서 수량 입력--------------------------------");
            while (true)
            {
                Console.Write("\n\t수량을 입력해주세요 : ");
                count = CancelKey.ReadLineWithCancel();
                if (count == null)
                {
                    bookManagement.Edit(bookManagement);
                }
                if (errorCheck.BookCount(count) == false)
                {
                    break;
                }
                RegisterErrorMsg("수량");
            }
            inputBook.Count = int.Parse(count);
            return(inputBook);
        }
Exemplo n.º 3
0
        public void Edit(MemberManagement memberManagement) //멤버 편집
        {
            string inputID;
            int    listIndex;

            while (true)
            {
                print.Search("편집할 회원의 학번을 ");
                inputID = CancelKey.ReadLineWithCancel();
                if (inputID == null)
                {
                    ViewMenu();
                }

                if (errorCheck.MemberID(inputID) == false)
                {
                    break;
                }
            }

            listIndex = memberList.FindIndex(member => member.StudentId.Equals(inputID));
            //listIndex = 회원 리스트에서 입력받은 inputID 값과 일치하는 item의 index를 반환함
            if (listIndex == NO_MEMBER) //리스트-1 => 매칭 되는 item 없다는 뜻
            {
                while (true)            //입력시 정규표현식에 맞지 않으면 반복문 탈출 불가(같은 부분 지속적으로 입력받기 위함)
                {
                    print.ErrorMsg("존재하지않는회원");
                    menuSelect = CancelKey.ReadLineWithCancel();
                    if (menuSelect == null)
                    {
                        ViewMenu();                                   //입력 중간에 ESC키를 누르면 이전 메뉴로
                    }
                    if (errorCheck.Number(menuSelect, "선택") == false) //에러 안나면 나감
                    {
                        break;
                    }
                    print.MenuErrorMsg("2지선다오류");
                }
                switch (int.Parse(menuSelect))
                {
                case REINPUT:
                    Edit(this);
                    break;

                case GOPREV:
                    ViewMenu();
                    break;
                }
            }

            else //리스트에 존재
            {
                memberList[listIndex] = print.MemberEdit(memberList[listIndex], this);
                print.CompleteMsg("편집이 완료");
                ViewMenu();
            }
        }
Exemplo n.º 4
0
        public void Search() //회원 검색
        {
            string inputID;
            int    listIndex;

            while (true)
            {
                print.Search("검색할 회원의 학번을 ");
                inputID = CancelKey.ReadLineWithCancel();
                if (inputID == null)
                {
                    ViewMenu();
                }
                errorCheck.MemberID(inputID);
                if (errorCheck.MemberID(inputID) == false)
                {
                    break;
                }
                print.MenuErrorMsg("2지선다오류");
            }
            listIndex = memberList.FindIndex(member => member.StudentId.Equals(inputID));

            if (listIndex == NO_MEMBER) //리스트-1 => 매칭 되는 item 없다는 뜻
            {
                while (true)
                {
                    print.ErrorMsg("존재하지않는회원");
                    menuSelect = CancelKey.ReadLineWithCancel();
                    if (menuSelect == null)
                    {
                        ViewMenu();
                    }
                    if (errorCheck.Number(menuSelect, "선택") == false)
                    {
                        break;
                    }
                    print.MenuErrorMsg("2지선다오류");
                }

                switch (int.Parse(menuSelect))
                {
                case REINPUT:
                    Search();
                    break;

                case GOPREV:
                    ViewMenu();
                    break;
                }
            }
            else //리스트에 입력받은 학번에 부합하는 아이템 존재
            {
                print.MemberInfo(memberList[listIndex]);
                ViewMenu();
            }
        }
Exemplo n.º 5
0
 public int SearchByPublisher()
 {
     print.Search("출판사");
     input = CancelKey.ReadLineWithCancel();
     if (input == null)
     {
         ViewMenu();
     }
     bookListIndex = bookList.FindIndex(book => book.Publisher.Equals(input));
     return(bookListIndex); //bookList에서 입력받은 출판사명 값과 일치하는 인덱스 반환
 }
Exemplo n.º 6
0
 public int SearchByName()
 {
     print.Search("도서명");
     input = CancelKey.ReadLineWithCancel();
     if (input == null)
     {
         ViewMenu();                //시간나면
     }
     listIndex = bookList.FindIndex(book => book.BookName.Equals(input));
     return(listIndex);
 }
Exemplo n.º 7
0
 public int SearchByAuthor()
 {
     print.Search("저자");
     input = CancelKey.ReadLineWithCancel();
     if (input == null)
     {
         ViewMenu();                //이것도
     }
     listIndex = bookList.FindIndex(book => book.Author.Equals(input));
     return(listIndex);
 }
Exemplo n.º 8
0
 public int SearchByPublisher()
 {
     print.Search("출판사");
     input = CancelKey.ReadLineWithCancel();
     if (input == null)
     {
         ViewMenu();                //시간나면 타입별 받앙서
     }
     listIndex = bookList.FindIndex(book => book.Publisher.Equals(input));
     return(listIndex);
 }
Exemplo n.º 9
0
        public void ViewMenu()
        {
            while (true)
            {
                print.Menu("회원관리");
                menuSelect = CancelKey.ReadLineWithCancel();
                if (menuSelect == null)
                {
                    menu.ViewMenu();                     //입력 중간에 ESC키 받으면 menuSelect값이 null이 되어
                }
                //이전 메뉴로 돌아가게됨.
                if (errorCheck.Number(menuSelect, "7지선다") == false)
                {
                    break;
                }
                print.MenuErrorMsg("7지선다오류");
            }

            switch (int.Parse(menuSelect))
            {
            case REGISTER:
                Register();
                break;

            case EDIT:
                Edit(this);
                break;

            case REMOVE:
                Delete();
                break;

            case SEARCH:
                Search();
                break;

            case PRINT_MEMBER_LIST:
                PrintMemberList();
                break;

            case PREVIOUS:
                menu.ViewMenu();
                break;

            case EXIT:
                Environment.Exit(0);
                break;
            }
        }
Exemplo n.º 10
0
        public void ViewMenu()
        {
            while (true)
            {
                print.Menu("도서관리");
                menuSelect = CancelKey.ReadLineWithCancel();
                if (menuSelect == null)
                {
                    menu.ViewMenu();
                }
                if (errorCheck.Number(menuSelect, "7지선다") == false)
                {
                    break;
                }
                print.MenuErrorMsg("7지선다오류");
            }

            switch (int.Parse(menuSelect))
            {
            case REGISTRATION:
                Register();
                break;

            case EDIT:
                Edit(this);
                break;

            case REMOVE:
                Delete();
                break;

            case SEARCH:
                Search();
                break;

            case PRINT_BOOK_LIST:
                PrintBookList();
                break;

            case PREVIOUS:
                menu.ViewMenu();
                break;

            case EXIT:
                Environment.Exit(0);
                break;
            }
        }
Exemplo n.º 11
0
        //기본 기능은 주소/핸드폰 번호만 수정 가능
        public Member MemberEdit(Member inputMember, MemberManagement memberManagement)
        {
            string phoneNumber, address;

            Console.Clear();
            Console.WriteLine("\n\n\t---------------------------------수정할 회원 기존 정보--------------------------------");
            Console.WriteLine("\n\t이름 : {0}", inputMember.Name);
            Console.WriteLine("\t학번 : {0}", inputMember.StudentId);
            Console.WriteLine("\t성별 : {0}", inputMember.Gender);
            Console.WriteLine("\t핸드폰 번호 : {0}", inputMember.PhoneNumber);
            Console.WriteLine("\t이메일 주소 : {0}", inputMember.Email);
            Console.WriteLine("\t주소 : {0}", inputMember.Address + "\n");
            Console.WriteLine("\t--------------------------------------------------------------------------------------");

            Console.WriteLine("\n\n\t---------------------------------수정할 회원 정보 입력--------------------------------");
            while (true)
            {
                Console.Write("\n\t핸드폰 번호 입력(010-1234-5678 형식) : ");
                phoneNumber = CancelKey.ReadLineWithCancel();
                if (phoneNumber == null)
                {
                    memberManagement.Edit(memberManagement);
                }
                if (errorCheck.MemberPhone(phoneNumber) == false)
                {
                    break;
                }
                RegisterErrorMsg("핸드폰 번호");
            }
            while (true)
            {
                Console.Write("\n\n\t주소 입력(동/리까지 입력) : ");
                address = CancelKey.ReadLineWithCancel();
                if (address == null)
                {
                    MemberEdit(inputMember, memberManagement);
                }
                if (errorCheck.MemberAddress(address) == false)
                {
                    break;
                }
                RegisterErrorMsg("주소");
            }
            inputMember.PhoneNumber = phoneNumber;
            inputMember.Address     = address;

            return(inputMember);
        }
Exemplo n.º 12
0
        public void RentMenu()
        {
            while (true)
            {
                print.Menu("대여검색");
                menuSelect = CancelKey.ReadLineWithCancel();
                if (menuSelect == null)
                {
                    ViewMenu();
                }
                if (errorCheck.Number(menuSelect, "5지선다") == false)
                {
                    break;
                }
                print.MenuErrorMsg("5지선다오류");
            }

            switch (int.Parse(menuSelect))
            {
            case SEARCH_BY_NAME:
                bookListIndex = SearchByName();     //이름으로 검색
                ValidateCheckBook("byName");
                break;

            case SEARCH_BY_PUBLISHER:
                bookListIndex = SearchByPublisher();     //출판사명으로 검색
                ValidateCheckBook("byPublisher");
                break;

            case SEARCH_BY_AUTHOR:
                bookListIndex = SearchByAuthor();     //작가로 검색
                ValidateCheckBook("byAuthor");
                break;

            case GOPREV:
                ViewMenu();
                break;

            case SHUT_DOWN:
                Environment.Exit(0);
                break;
            }
        }
Exemplo n.º 13
0
        public void ValidateCheckBook(string searchType)
        {
            if (bookListIndex == NO_BOOK)
            {
                while (true)
                {
                    print.ErrorMsg("존재하지않는도서");
                    menuSelect = CancelKey.ReadLineWithCancel();
                    if (menuSelect == null)
                    {
                        RentMenu();
                    }
                    if (errorCheck.Number(menuSelect, "선택") == false)
                    {
                        break;
                    }
                    print.MenuErrorMsg("2지선다");
                }

                switch (int.Parse(menuSelect))
                {
                case REINPUT:     //다시 입력 할 때 searchType 변수로 검색 방식 설정해주고 인자값으로 넘겨줌
                    if (searchType == "byName")
                    {
                        SearchByName();
                    }
                    if (searchType == "byPublisher")
                    {
                        SearchByPublisher();
                    }
                    if (searchType == "byAuthor")
                    {
                        SearchByAuthor();
                    }
                    break;

                case PREV:
                    RentMenu();
                    break;
                }
            }
            Rent(bookListIndex, searchType);
        }
Exemplo n.º 14
0
        public void Return()
        {
            string studentID;
            string confirm;

            while (true)
            {
                print.InputIDMsg("책을 반납할 회원");
                studentID = CancelKey.ReadLineWithCancel();
                if (studentID == null)
                {
                    ViewMenu();
                }
                if (errorCheck.MemberID(studentID) == false)
                {
                    break;
                }
                print.RegisterErrorMsg("학번");
            }

            memberListIndex = memberList.FindIndex(member => member.StudentId.Equals(studentID)); //입력받은 학번과 일치하는 회원을 리스트에서 찾아서 인덱스를 반환
            if (memberListIndex == NO_MEMBER)                                                     //입력받은 학번에 해당하는 회원 없을때
            {
                while (true)
                {
                    print.ErrorMsg("존재하지않는회원");
                    menuSelect = CancelKey.ReadLineWithCancel();
                    if (menuSelect == null)
                    {
                        Return();                     //ESC키
                    }
                    if (errorCheck.Number(menuSelect, "선택") == false)
                    {
                        break;
                    }
                    print.MenuErrorMsg("2지선다오류");
                }
                switch (int.Parse(menuSelect))
                {
                case REINPUT:
                    Return();
                    break;

                case PREV:
                    RentMenu();
                    break;
                }
            }
            bookListIndex = bookList.FindIndex(book =>                                                      //검색한 학번의 회원이 존재하면 그 회원이 빌린 책과
                                               memberList[memberListIndex].RentBook.Equals(book.BookName)); //도서 리스트에 있는 책에서 값이 일치하는 인덱스를 반환

            while (true)
            {
                print.ReturnMsg(bookList[bookListIndex].BookName);
                confirm = CancelKey.ReadLineWithCancel();
                if (confirm == null)
                {
                    Return();
                }
                if (errorCheck.Confirm(confirm) == false)
                {
                    break;
                }
                print.MenuErrorMsg("Y/N오류");
            }

            if (confirm == "Y" || confirm == "y")
            {
                memberList[memberListIndex].RentBook = ""; //책을 반납한 회원의 빌린 책명 없애줌
                memberList[memberListIndex].DueDate  = ""; //책을 반납한 회원의 반납일 없애줌
                bookList[bookListIndex].Count        = bookList[bookListIndex].Count + 1;
                print.CompleteMsg("반납 완료");
                RentMenu();
            }

            else if (confirm == "N" || confirm == "n")
            {
                Console.WriteLine("\t2초 후에 메뉴로 돌아갑니다...");
                Thread.Sleep(2000);
                ViewMenu();
            }
        }
Exemplo n.º 15
0
        public Book BookRegister(BookManagement bookManagement)
        {
            string bookName, publisher, author, price, count;

            Console.Clear();
            while (true)
            {
                Console.Write("\n\n\t도서 제목 입력(16자이내) : ");
                bookName = CancelKey.ReadLineWithCancel();
                if (bookName == null)
                {
                    bookManagement.ViewMenu();
                }
                if (errorCheck.BookName(bookName) == false)
                {
                    break;
                }
                RegisterErrorMsg("도서제목");
            }
            while (true)
            {
                Console.Write("\n\n\t출판사 입력(8자이내) : ");
                publisher = CancelKey.ReadLineWithCancel();
                if (publisher == null)
                {
                    BookRegister(bookManagement);
                }
                if (errorCheck.BookName(publisher) == false)
                {
                    break;
                }
                RegisterErrorMsg("출판사명");
            }
            while (true)
            {
                Console.Write("\n\n\t저자 입력(10자이내) : ");
                author = CancelKey.ReadLineWithCancel();
                if (author == null)
                {
                    BookRegister(bookManagement);
                }
                if (errorCheck.BookAuthor(author) == false)
                {
                    break;
                }
                RegisterErrorMsg("저자");
            }
            while (true)
            {
                Console.Write("\n\n\t가격 입력(예:50000원) : ");
                price = CancelKey.ReadLineWithCancel();
                if (price == null)
                {
                    BookRegister(bookManagement);
                }
                if (errorCheck.BookPrice(price) == false)
                {
                    break;
                }
                RegisterErrorMsg("가격");
            }
            while (true)
            {
                Console.Write("\n\n\t수량 입력(숫자만 입력) : ");
                count = CancelKey.ReadLineWithCancel();
                if (count == null)
                {
                    BookRegister(bookManagement);
                }
                if (errorCheck.BookCount(count) == false)
                {
                    break;
                }
                RegisterErrorMsg("수량");
            }
            Book newBook = new Book(bookName, publisher, author, price, int.Parse(count));

            return(newBook);
        }
Exemplo n.º 16
0
        public void Search()
        {
            while (true)
            {
                print.Menu("도서검색");
                menuSelect = CancelKey.ReadLineWithCancel();
                if (menuSelect == null)
                {
                    ViewMenu();
                }
                if (errorCheck.Number(menuSelect, "5지선다") == false)
                {
                    break;
                }
                print.MenuErrorMsg("5지선다오류");
            }
            switch (int.Parse(menuSelect))
            {
            case SEARCH_BY_NAME:
                SearchByName();
                break;

            case SEARCH_BY_PUBLISHER:
                SearchByPublisher();
                break;

            case SEARCH_BY_AUTHOR:
                SearchByAuthor();
                break;

            case PREV:
                ViewMenu();
                break;

            case SHUT_DOWN:
                Environment.Exit(0);
                break;
            }

            if (listIndex == NO_BOOK)
            {
                while (true)
                {
                    print.ErrorMsg("존재하지않는도서");
                    menuSelect = CancelKey.ReadLineWithCancel();
                    if (menuSelect == null)
                    {
                        Search();
                    }
                    if (errorCheck.Number(menuSelect, "선택") == false)
                    {
                        break;
                    }
                    print.MenuErrorMsg("2지선다오류");
                }

                switch (int.Parse(menuSelect))
                {
                case REINPUT:
                    Search();
                    break;

                case GOPREV:
                    ViewMenu();
                    break;
                }
            }
            else //리스트에 존재
            {
                print.BookSearch(bookList[listIndex]);
                ViewMenu();
            }
        }
Exemplo n.º 17
0
        public void Delete()
        {
            while (true)
            {
                print.Menu("도서검색");
                menuSelect = CancelKey.ReadLineWithCancel();
                if (menuSelect == null)
                {
                    ViewMenu();
                }
                if (errorCheck.Number(menuSelect, "5지선다") == false)
                {
                    break;
                }
                print.MenuErrorMsg("5지선다오류");
            }

            switch (int.Parse(menuSelect))
            {
            case SEARCH_BY_NAME:
                listIndex = SearchByName();
                break;

            case SEARCH_BY_PUBLISHER:
                listIndex = SearchByPublisher();
                break;

            case SEARCH_BY_AUTHOR:
                listIndex = SearchByAuthor();
                break;

            case PREV:
                ViewMenu();
                break;

            case SHUT_DOWN:
                Environment.Exit(0);
                break;
            }

            if (listIndex == NO_BOOK)
            {
                print.ErrorMsg("존재하지않는도서");
                menuSelect = CancelKey.ReadLineWithCancel();
                if (menuSelect == null)
                {
                    Delete();
                }
                switch (int.Parse(menuSelect))
                {
                case REINPUT:
                    Delete();
                    break;

                case GOPREV:
                    ViewMenu();
                    break;
                }
            }
            else //리스트에 존재
            {
                string confirm;
                while (true)
                {
                    print.BookDelete(bookList[listIndex]);
                    confirm = CancelKey.ReadLineWithCancel();
                    if (confirm == null)
                    {
                        Delete();
                    }
                    if (errorCheck.Confirm(confirm) == false)
                    {
                        break;
                    }
                    print.MenuErrorMsg("Y/N오류");
                }

                if (confirm == "Y" || confirm == "y")
                {
                    bookList.RemoveAt(listIndex);
                    print.CompleteMsg("도서 삭제가 완료 ");
                    ViewMenu();
                }

                else if (confirm == "N" || confirm == "n")
                {
                    Console.WriteLine("이전 메뉴로 돌아갑니다...");
                    Console.WriteLine("\t2초 후에 메뉴로 돌아갑니다...");
                    Thread.Sleep(2000);
                    ViewMenu();
                }
            }
        }
Exemplo n.º 18
0
        public void Edit(BookManagement bookManagement)
        {
            while (true)
            {
                print.Menu("도서수정");
                menuSelect = CancelKey.ReadLineWithCancel();
                if (menuSelect == null)
                {
                    ViewMenu();
                }
                if (errorCheck.Number(menuSelect, "5지선다") == false)
                {
                    break;
                }
                print.MenuErrorMsg("5지선다오류");
            }
            switch (int.Parse(menuSelect))
            {
            case SEARCH_BY_NAME:
                listIndex = SearchByName();
                break;

            case SEARCH_BY_PUBLISHER:
                listIndex = SearchByPublisher();
                break;

            case SEARCH_BY_AUTHOR:
                listIndex = SearchByAuthor();
                break;

            case PREV:
                menu.ViewMenu();
                break;

            case SHUT_DOWN:
                Environment.Exit(0);
                break;
            }

            if (listIndex == NO_BOOK)
            {
                while (true)
                {
                    print.ErrorMsg("존재하지않는도서");
                    menuSelect = CancelKey.ReadLineWithCancel();
                    if (menuSelect == null)
                    {
                        Edit(this);
                    }
                    if (errorCheck.Number(menuSelect, "선택") == false)
                    {
                        break;
                    }
                }

                switch (int.Parse(menuSelect))
                {
                case REINPUT:
                    Edit(this);
                    break;

                case GOPREV:
                    Edit(this);
                    break;
                }
            }
            else //리스트에 존재
            {
                bookList[listIndex] = print.BookEdit(bookList[listIndex], this);
                print.CompleteMsg("수량 수정 완료");
                ViewMenu();
            }
        }
Exemplo n.º 19
0
        public void Delete() //멤버 삭제 메소드
        {
            string inputID;
            string confirm;
            int    listIndex;

            while (true)
            {
                print.Search("삭제할 회원의 학번을 ");
                inputID = CancelKey.ReadLineWithCancel();
                if (inputID == null)
                {
                    ViewMenu();
                }
                if (errorCheck.MemberID(inputID) == false)
                {
                    break;
                }
            }

            listIndex = memberList.FindIndex(member => member.StudentId.Equals(inputID));
            if (listIndex == NO_MEMBER) //리스트-1 => 매칭 되는 item 없다는 뜻
            {
                while (true)
                {
                    print.ErrorMsg("존재하지않는회원");
                    menuSelect = CancelKey.ReadLineWithCancel();
                    if (menuSelect == null)
                    {
                        ViewMenu();
                    }
                    if (errorCheck.Number(menuSelect, "선택") == false) //에러 값이 false이기 때문에 반복문 나감
                    {
                        break;
                    }
                    print.MenuErrorMsg("2지선다오류");
                }
                switch (int.Parse(menuSelect))
                {
                case REINPUT:
                    Edit(this);
                    break;

                case GOPREV:
                    ViewMenu();
                    break;
                }
            }

            else //리스트에 입력받은 학번과 일치하는 아이템 있음.
            {
                while (true)
                {
                    print.MemberDelete(memberList[listIndex]);
                    confirm = CancelKey.ReadLineWithCancel();
                    if (confirm == null)
                    {
                        ViewMenu();
                    }
                    if (errorCheck.Confirm(confirm) == false) //입력 양식 안맞을때
                    {
                        break;
                    }
                    print.MenuErrorMsg("Y/N오류");
                }

                if (confirm == "Y" || confirm == "y")
                {
                    memberList.RemoveAt(listIndex);
                    print.CompleteMsg("회원 삭제가 완료 ");
                    ViewMenu();
                }

                else if (confirm == "N" || confirm == "n")
                {
                    Console.WriteLine("\n\t2초 후에 메뉴로 돌아갑니다...");
                    Thread.Sleep(2000);
                    ViewMenu();
                }
            }
        }
Exemplo n.º 20
0
        public void Rent(int bookListIndex, string searchType)
        {
            //리스트에 존재
            if (bookList[bookListIndex].Count == 0) //책 수량 없음
            {
                print.CompleteMsg("수량이 소진");
                RentMenu();
            }
            else//수량이 있으면 빌릴 사람 입력
            {
                while (true)
                {
                    print.InputIDMsg("책을 빌릴 회원");
                    studentID = CancelKey.ReadLineWithCancel();
                    if (studentID == null)
                    {
                        RentMenu();
                    }
                    if (errorCheck.MemberID(studentID) == false)
                    {
                        break;
                    }
                    print.RegisterErrorMsg("학번");
                }

                memberListIndex = memberList.FindIndex(member => member.StudentId.Equals(studentID));

                if (memberListIndex == NO_MEMBER) //학번 검색했을때 등록되지 않은 회원이었을때
                {
                    while (true)
                    {
                        print.ErrorMsg("존재하지않는회원");
                        menuSelect = CancelKey.ReadLineWithCancel();
                        if (menuSelect == null)
                        {
                            RentMenu();
                        }
                        if (errorCheck.Number(menuSelect, "선택") == false)
                        {
                            break;
                        }
                        print.MenuErrorMsg("2지선다오류");
                    }
                    switch (int.Parse(menuSelect))
                    {
                    case REINPUT:
                        Rent(bookListIndex, searchType);
                        break;

                    case PREV:
                        RentMenu();
                        break;
                    }
                }

                if (memberList[memberListIndex].RentBook != "") //해당 회원이 빌린 책이 있을 때
                {
                    while (true)
                    {
                        print.ReturnErrorMsg();
                        menuSelect = CancelKey.ReadLineWithCancel();
                        if (menuSelect == null)
                        {
                            Rent(bookListIndex, searchType);
                        }
                        if (errorCheck.Number(menuSelect, "선택") == false)
                        {
                            break;
                        }
                        print.MenuErrorMsg("2지선다오류");
                    }
                    switch (int.Parse(menuSelect))
                    {
                    case REINPUT:
                        Return();
                        break;

                    case PREV:
                        RentMenu();
                        break;
                    }
                }
                else //정상적으로 해당 인원에게 책을 대출해줌. 책 카운트도 감소
                {
                    bookList[bookListIndex].Count        = bookList[bookListIndex].Count - 1; //책 카운트 감소
                    memberList[memberListIndex].DueDate  = "2018-04-23"; //오늘부터 일주일 설정
                    memberList[memberListIndex].RentBook = bookList[bookListIndex].BookName;

                    print.CompleteMsg("{0}에게 대출이 완료" + memberList[memberListIndex]);
                    ViewMenu();
                }
            }
        }
Exemplo n.º 21
0
        public void Extension() //반납 연장
        {
            string studentID;
            string confirm;

            while (true)
            {
                print.InputIDMsg("책을 연장할 회원");
                studentID = CancelKey.ReadLineWithCancel();
                if (studentID == null)
                {
                    ViewMenu();
                }
                if (errorCheck.MemberID(studentID) == false)
                {
                    break;
                }
                print.RegisterErrorMsg("학번");
            }

            memberListIndex = memberList.FindIndex(member => member.StudentId.Equals(studentID)); //입력받은 학번에 해당하는 회원의 인덱스
            if (memberListIndex == NO_MEMBER)                                                     //입력받은 학번에 해당하는 회원 없을때
            {
                while (true)
                {
                    print.ErrorMsg("존재하지않는회원");
                    menuSelect = CancelKey.ReadLineWithCancel();
                    if (menuSelect == null)
                    {
                        Extension();
                    }
                    if (errorCheck.Number(menuSelect, "선택") == false)
                    {
                        break;
                    }
                    print.MenuErrorMsg("2지선다오류");
                }
                switch (int.Parse(menuSelect))
                {
                case REINPUT:
                    Extension();
                    break;

                case PREV:
                    RentMenu();
                    break;
                }
            }
            bookListIndex = bookList.FindIndex(book =>
                                               memberList[memberListIndex].RentBook.Equals(book.BookName));

            while (true)
            {
                print.ExtensionMsg(bookList[bookListIndex].BookName);
                confirm = CancelKey.ReadLineWithCancel();
                if (confirm == null)
                {
                    ViewMenu();
                }
                if (errorCheck.Confirm(confirm) == false)
                {
                    break;
                }
                print.MenuErrorMsg("Y/N오류");
            }

            if (confirm == "Y" || confirm == "y")
            {
                memberList[memberListIndex].DueDate = "2018-04-30"; //오늘 날짜로부터 연장
                print.CompleteMsg("연장 완료");
                RentMenu();
            }

            else if (confirm == "N" || confirm == "n")
            {
                Console.WriteLine("\t2초 후에 메뉴로 돌아갑니다...");
                Thread.Sleep(2000);
                RentMenu();
            }
        }
Exemplo n.º 22
0
        public Member MemberRegister(MemberManagement memberManagement) //while로 틀린 항목 다시 입력하게
        {
            string name, studentId, gender, phoneNumber, email, address;

            Console.Clear();
            while (true)
            {
                Console.Write("\n\n\t이름 입력 (4자리 이내) : ");
                name = CancelKey.ReadLineWithCancel();
                if (name == null)
                {
                    memberManagement.ViewMenu();          //입력중간에 ESC키 입력하면 바로 이전 메뉴로 나감
                }
                if (errorCheck.MemberName(name) == false) //미리 설정해둔 정규식에 맞으면 bool 타입 false 반환
                {
                    break;
                }
                RegisterErrorMsg("이름");
            }
            while (true)
            {
                Console.Write("\n\n\t학번 입력 (6~8자리 이내) : ");
                studentId = CancelKey.ReadLineWithCancel();
                if (studentId == null)
                {
                    MemberRegister(memberManagement);                    //입력중간에 ESC키 입력하면 입력 양식 가장 위로 올라감
                }
                if (errorCheck.MemberID(studentId) == false)
                {
                    break;
                }
                RegisterErrorMsg("학번");
            }
            while (true)
            {
                Console.Write("\n\n\t성별 입력 (남/여): ");
                gender = CancelKey.ReadLineWithCancel();
                if (gender == null)
                {
                    MemberRegister(memberManagement);
                }
                if (errorCheck.MemberGender(gender) == false)
                {
                    break;
                }
                RegisterErrorMsg("성별");
            }
            while (true)
            {
                Console.Write("\n\n\t핸드폰 번호 입력(010-1234-5678 형식) : ");
                phoneNumber = CancelKey.ReadLineWithCancel();
                if (phoneNumber == null)
                {
                    MemberRegister(memberManagement);
                }
                if (errorCheck.MemberPhone(phoneNumber) == false)
                {
                    break;
                }
                RegisterErrorMsg("핸드폰 번호");
            }
            while (true)
            {
                Console.Write("\n\n\t이메일 입력 : ");
                email = CancelKey.ReadLineWithCancel();
                if (email == null)
                {
                    MemberRegister(memberManagement);
                }
                if (errorCheck.MemberEmail(email) == false)
                {
                    break;
                }
                RegisterErrorMsg("이메일");
            }
            while (true)
            {
                Console.Write("\n\n\t주소 입력 : ");
                address = CancelKey.ReadLineWithCancel();
                if (address == null)
                {
                    MemberRegister(memberManagement);
                }
                if (errorCheck.MemberAddress(address) == false)
                {
                    break;
                }
                RegisterErrorMsg("주소");
            }

            Member newMember = new Member(name, studentId, gender, phoneNumber, email, address, "", "");

            return(newMember);
        }