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(); } }
public Menu() { this.memberList = new List <Member>(); this.bookList = new List <Book>(); this.memberManagement = new MemberManagement(this, memberList); this.bookManagement = new BookManagement(this, bookList); this.bookRent = new BookRent(this, memberList, bookList); this.print = Print.GetInstance(); //Print객체가 있으면 생성하지 않고 없으면 생성하는 메소드 this.errorCheck = ErrorCheck.GetInstance(); new DataAdd(this.memberList, this.bookList); //최초 데이터 추가 }
public MemberManagement(Menu menu, List <Member> memberList) { this.menu = menu; this.memberList = memberList; this.print = Print.GetInstance(); this.errorCheck = ErrorCheck.GetInstance(); this.memberManagement = this; //등록 혹은 편집 기능을 하는 메소드가 다른 클래스에 있어서 현재 MemberManagement //인스턴스 전체를 가리키고 있는 this로 membermanagement 에 할당해준 뒤 //다른 클래스로 넘길때 인자로 넘겨줌 }
//기본 기능은 주소/핸드폰 번호만 수정 가능 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); }
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); }