/// <summary> /// Deletes a member. /// </summary> /// <param name="recipe">The recipe to delete. The value can be null.</param> public virtual void Delete(Member member) { // If it's a copy of a member... if (!_memberRepository.Contains(member)) { // ...try to find the original! member = _memberRepository.Find(m => m.Equals(member)); } _memberRepository.Remove(member); }
/// <summary> /// Adds member to member repository /// </summary> /// <param name="member"></param> public void Add(Member member) { _memberRepository.Add(member); }
/// <summary> /// Views a verbose info of spec. member (name, first- & last name, personal no. and boat info) /// </summary> /// <param name="members"></param> public void viewMemberVerbose(Member member) { ShowMessage(String.Format("ID:{0}\nName:{1} {2}\n{3}\n\n", member.ID, member.FirstName, member.LastName, member.PersonalNumber)); _boatView.viewBoats(member.Boats); }
/// <summary> /// Loads member info from text file, saves to member repository /// and returns it as readonlycollection /// </summary> /// <returns>_memberReository (as readonly)</returns> public IReadOnlyCollection<Member> LoadMemberData() { using (StreamReader listreader = new StreamReader(_path)) { List<Member> members = new List<Member>(); Member member = null; Boat boat = null; string line; MemberReadStatus status = MemberReadStatus.Other; while ((line = listreader.ReadLine()) != null) { switch (line) { case "": continue; case sectionMember: status = MemberReadStatus.NewMember; break; case sectionID: status = MemberReadStatus.ID; continue; case sectionName: status = MemberReadStatus.Name; continue; case sectionPersonalNumber: status = MemberReadStatus.PersonalNumber; continue; case sectionBoat: status = MemberReadStatus.NewBoat; break; case sectionLength: status = MemberReadStatus.Length; continue; case sectionType: status = MemberReadStatus.Type; continue; } switch (status) { case MemberReadStatus.NewMember: member = new Member(); members.Add(member); continue; case MemberReadStatus.ID: member.ID = line; continue; case MemberReadStatus.Name: string[] names = line.Split(new char[] { ';' }); if (names.Length < 2) { throw new FormatException(); } member.FirstName = names[0]; member.LastName = names[1]; continue; case MemberReadStatus.PersonalNumber: member.PersonalNumber = line; continue; case MemberReadStatus.NewBoat: boat = new Boat(); member.add(boat); continue; case MemberReadStatus.Length: string[] length = line.Split(new char[] { ';' }); boat.Length = double.Parse(length[0]); continue; case MemberReadStatus.Type: foreach (Boat.Type t in Enum.GetValues(typeof(Boat.Type))) { if (Enum.GetName(typeof(Boat.Type),t) == line) { boat.BoatType = t; } } continue; } } members.TrimExcess(); members = members.OrderBy(m => m.ID).ToList(); _memberRepository = members; return members.AsReadOnly(); } }
/// <summary> /// Adds member to repository, save current state. /// </summary> /// <param name="member"></param> private void saveMember(Member member) { _memberDAL.Add(member); _memberDAL.Save(); }
/// <summary> /// Views a compact info of specific member (name, first- & last name, personal no., no. of boats) /// </summary> /// <param name="members"></param> public void viewMemberCompact(Member member) { ShowMessage(string.Format("ID:{0}\nName:{1} {2}\n{3}\n\nNo. of boats:{4}\n", member.ID, member.FirstName, member.LastName, member.PersonalNumber, member.getNumberOfBoats())); }
/// <summary> /// Deletes boat from member, create new boat info. /// </summary> /// <param name="member"></param> private void editBoat(Member member) { //Delete the current info about the boat deleteBoat(member); //add new boat info and save! addBoat(member); }
/// <summary> /// Delete member fom repository, save currents state. /// </summary> /// <param name="member"></param> private void editMemberInfo(Member member) { //Delete the current info about the info _memberDAL.Delete(member); //create new user info createMember(); }
/// <summary> /// Delete current member info, choose boat by index /// using view, remove and save. /// </summary> /// <param name="member"></param> private void deleteBoat(Member member) { //Delete the current info about the member _memberDAL.Delete(member); //choose the boat to remove.. Boat b = chooseBoat(member); //remove it and save! member.remove(b); saveMember(member); }
/// <summary> /// Presents boats using and get user to choose boat by index /// using view. /// </summary> /// <param name="member"></param> /// <returns>Boat (by index)</returns> private Boat chooseBoat(Member member) { //Present all boats... _editUpdateMenu.showBoats(member); //and get user to choose boat. int index = _editUpdateMenu.getIndexFomInput(); return member.Boats.ElementAt(index); }
/// <summary> /// Create boat, get boat info using view, add to member and save it. /// </summary> /// <param name="member"></param> private void addBoat(Member member) { //Create new boat.. Boat b = new Boat(); double length; //Delete the current info about the member _memberDAL.Delete(member); //Get the type of the boat, set it to new boat. Boat.Type boatType = _editUpdateMenu.chooseBoatType(); //Get the length of the boat, set it to new boat. string lengthInput = _editUpdateMenu.getStrInput(messages.inputLength); try { double.TryParse(lengthInput, out length); b.BoatType = boatType; b.Length = length; //add boat to the member. member.add(b); //save member saveMember(member); _editUpdateMenu.ShowMessage(messages.boatCreated); } catch (Exception) { _editUpdateMenu.ShowMessage(messages.invalidInput); } }
/// <summary> /// Delete current member info, choose boat by index /// using view, remove and save. /// </summary> /// <param name="member"></param> private void deleteBoat(Member member) { //Delete the current info about the member _memberDAL.Delete(member); if (member.getNumberOfBoats() > 0) { //choose the boat to remove.. Boat boat = chooseBoat(member); //remove it and save! member.remove(boat); saveMember(member); } _editUpdateMenu.ShowMessage(messages.returnStr); goBack(); }
/// <summary> /// Presents list of boats to user. /// </summary> /// <param name="member"></param> internal void showBoats(Member member) { ShowMessage(messages.chooseBoat,true); int i = -1; foreach (Boat b in member.Boats) { i++; ShowMessage(string.Format("{0}.{1}", i,b.ToString())); } }