private void HandleEventAddNewBoat(Model.Member member, View.ConsoleView view, Model.MemberRegistry registry) { view.ShowInputInfo(View.MenuEvent.AddBoat, member); Model.Boat boat = new Model.Boat(); boat.ID = registry.GetNextBoatIdFor(member); try { boat.Model = (Model.BoatModel)view.InputBoatModel(); } catch (ArgumentException) { view.ShowErrorMessage(View.Error.InvalidBoatModel, null); view.Wait(); return; } try { boat.Length = view.InputBoatLenght(); } catch (ArgumentException) { view.ShowErrorMessage(View.Error.InvalidBoatLenght, null); view.Wait(); return; } member.AddBoat(boat); registry.Save(); }
private void updateBoat(Model.Member boatOwner) { int boatTypeAsNumber = this._boatView.getBoatTypeInput(); Enums.BoatTypes.Boats boatType = (Enums.BoatTypes.Boats)Convert.ToInt32(boatTypeAsNumber); int boatLength = this._boatView.getBoatLengthInput(); Model.Boat boat = this._createBoat.create(boatType, boatLength); boatOwner.Boats.Add(boat); this._boatView.messageForSuccess(boatType + " " + boatLength + "m successfully updated!"); }
public void registerBoatOnList(string memberID, Model.Boat boat) { List <Model.Member> database = LoadMemberList(); for (int i = 0; i < database.Count; i++) { if (database[i].MemberID == memberID) { database[i].Boats.Add(boat); saveAllToFile(database); } } }
private void HandleEventShowEditBoatMenu(Model.Member member, Model.Boat boat, View.Console view, Model.MemberRegister register) { while (true) { view.ShowMenu(View.Console.MenuEvent.EditBoatMenu, member); switch (view.GetMenuSelection()) { case View.Console.MenuEvent.EditBoatModel: view.ShowInputInfo(View.Console.MenuEvent.EditBoatModel, member); try { boat.Model = (Model.Boat.BoatModel)view.InputBoatModel(); register.Save(); } catch (ArgumentException) { view.ShowErrorMessage(View.Console.Error.InvalidBoatModel, null); view.Wait(); return; } break; case View.Console.MenuEvent.EditBoatLength: view.ShowInputInfo(View.Console.MenuEvent.EditBoatLength, member); try { boat.Length = view.InputBoatLenght(); register.Save(); break; } catch (ArgumentException) { view.ShowErrorMessage(View.Console.Error.InvalidBoatLenght, null); view.Wait(); break; } case View.Console.MenuEvent.Back: // exit menu return; } } }
public void registerBoatOnList() { string id = this._boatView.getIDInput("The boat owner's 6-character ID: "); if (this._database.memberExists(id)) { int boatTypeAsNumber = this._boatView.getBoatTypeInput(); Enums.BoatTypes.Boats boatType = (Enums.BoatTypes.Boats)Convert.ToInt32(boatTypeAsNumber); int boatLength = this._boatView.getBoatLengthInput(); Model.Boat boat = this._createBoat.create(boatType, boatLength); this._database.registerBoatOnList(id, boat); this._boatView.messageForSuccess("Boat successfully added!"); } else { this._boatView.messageForError("No matching member!"); } }
public Model.Boat Create() { while(true) { try { boat = new Model.Boat(); if (boat.Type == Model.Boat.TypeBoat.StateLess) { Cout.Print(View.ConsoleIn.FAQBoatType); boat.Type = (Model.Boat.TypeBoat)Cin.readKeyToInt() - 1; } if (boat.Length == 0) { Cout.Print(View.ConsoleIn.FAQBoatLength); boat.Length = int.Parse(Cin.readString()); } } catch (Exception e) { new View.Error(e); // Ask for continuing if an exception has been throwned in your face ;) if (Cin.boolResponseOfQuestion(View.ConsoleIn.FAQContinueWithY, "yY")) { ViewMenuBoat.ModelMenu.State = Model.Menu.MainMenu.MenuBoat; ViewMenuBoat.ModelMenu.IsActive = true; ViewMenuBoat.State = View.MenuBoat.Menu.Create; } else { ViewMenuBoat.ModelMenu.State = Model.Menu.MainMenu.MenuBoat; ViewMenuBoat.ModelMenu.IsActive = true; ViewMenuBoat.State = View.MenuBoat.Menu.StateLess; } } break; } return boat; }
public void Update(Model.BoatCatalog boatCatalog) { while (true) { try { boat = new Model.Boat(); if (boatCatalog.NrOfBoatsInBoatCatalog() != null || boatCatalog.NrOfBoatsInBoatCatalog() != 0) { int counter = 1; foreach (Model.Boat b in boatCatalog) { Cout.Print(string.Format(View.ConsoleIn.FAQBoatBoatsNrToEdit, counter)); Cout.Print(string.Format(View.ConsoleIn.FAQBoatTypeOfBoat, b.Type)); Cout.Print(string.Format(View.ConsoleIn.FAQBoatLengthOfBoat, b.Length)); counter++; } } // Edit boats if(Cin.boolResponseOfQuestion("(y) Update boats?", "yY")) UpdateMode(boatCatalog); // Delete boats if(Cin.boolResponseOfQuestion("(y) Delete boat(s)?", "yY")) DeleteMode(boatCatalog); } catch (Exception e) { new View.Error(e); break; } break; } return; }
private string ToString(Model.Boat boat) { return(string.Join(" ", boat.BoatType + " on " + boat.Length + "m ID: " + boat.BoatID)); }
//Methods public bool UseSystem() { //first display main menu m_view.DisplayMainMenu(); bool quit = false; while (!quit) { //get input View.InputAction input = m_view.GetInput(); //do action depending on input if (input.Action == View.ActionEnum.Quit) { quit = true; } else if (input.Action == View.ActionEnum.GoToMainMenu) { m_view.DisplayMainMenu(); } else if (input.Action == View.ActionEnum.MemberListCompact) { m_view.DisplayMemberList(m_memberList, View.DisplayMembersMode.Compact); } else if (input.Action == View.ActionEnum.MemberListVerbose) { m_view.DisplayMemberList(m_memberList, View.DisplayMembersMode.Verbose); } else if (input.Action == View.ActionEnum.MemberSelection) { m_addingEditingMember = null; //make sure no member is already stored m_view.DisplaySelectMemberMenu(m_memberList); } else if (input.Action == View.ActionEnum.MemberSelected || input.Action == View.ActionEnum.MemberSelected_ShowMenuAgain) { bool allOkay = true; if (input.Action == View.ActionEnum.MemberSelected) { //try to retrieve the selected member by number and store it allOkay = this.SelectMemberFromInputNumber(input.Characters); } if (allOkay) { m_view.DisplayChangeMemberMenu(m_addingEditingMember); } else { //error selecting member, show member selection again (with error message) m_view.DisplaySelectMemberMenu(m_memberList, true); } } else if (input.Action == View.ActionEnum.MemberBoatSelectionEdit || input.Action == View.ActionEnum.MemberBoatSelectionDelete) { bool editNotDelete = (input.Action == View.ActionEnum.MemberBoatSelectionEdit); m_addingEditingBoat = null; //make sure no boat is already stored m_view.DisplaySelectMemberBoatMenu(m_addingEditingMember, editNotDelete); } else if (input.Action == View.ActionEnum.MemberBoatSelectedEdit || input.Action == View.ActionEnum.MemberBoatSelectedDelete) { bool editNotDelete = (input.Action == View.ActionEnum.MemberBoatSelectedEdit); //try to retrieve the selected member by number and store it bool selectResult = this.SelectBoatFromInputNumber(input.Characters); if (selectResult == true) { if (editNotDelete) { m_view.DisplayEditBoatAttribute(View.AddEditBoatAttribute.Type, m_addingEditingMember, m_addingEditingBoat); } else { m_view.DisplayConfirmBoatDelete(); } } else { //error selecting boat, show boat selection again (with error message) m_view.DisplaySelectMemberBoatMenu(m_addingEditingMember, editNotDelete, true); } } else if (input.Action == View.ActionEnum.MemberPresentation || input.Action == View.ActionEnum.MemberDelete || input.Action == View.ActionEnum.MemberConfirmDelete || input.Action == View.ActionEnum.MemberEdit || input.Action == View.ActionEnum.MemberEditedName || input.Action == View.ActionEnum.MemberEditedPersonalNumber || input.Action == View.ActionEnum.MemberAdd || input.Action == View.ActionEnum.MemberAddingName || input.Action == View.ActionEnum.MemberAddingPersonalNumber || input.Action == View.ActionEnum.MemberBoatAdd || input.Action == View.ActionEnum.MemberBoatAddingType || input.Action == View.ActionEnum.MemberBoatAddingLength || input.Action == View.ActionEnum.MemberBoatEditedType || input.Action == View.ActionEnum.MemberBoatEditedLength || input.Action == View.ActionEnum.MemberBoatConfirmDelete) { bool addingMember = (input.Action == View.ActionEnum.MemberAdd || input.Action == View.ActionEnum.MemberAddingName || input.Action == View.ActionEnum.MemberAddingPersonalNumber); bool editingMember = (input.Action == View.ActionEnum.MemberEdit || input.Action == View.ActionEnum.MemberEditedName || input.Action == View.ActionEnum.MemberEditedPersonalNumber); bool addingBoat = (input.Action == View.ActionEnum.MemberBoatAdd || input.Action == View.ActionEnum.MemberBoatAddingType || input.Action == View.ActionEnum.MemberBoatAddingLength); bool editingBoat = (input.Action == View.ActionEnum.MemberBoatEditedType || input.Action == View.ActionEnum.MemberBoatEditedLength); bool deletingBoat = (input.Action == View.ActionEnum.MemberBoatConfirmDelete); if (!addingMember && m_addingEditingMember == null) { //a selected member is needed, show member selection again (with error message) m_view.DisplaySelectMemberMenu(m_memberList, true); } else if ((editingBoat || deletingBoat) && m_addingEditingBoat == null) { //a selected boat is needed, show boat selection again (with error message) m_view.DisplaySelectMemberBoatMenu(m_addingEditingMember, true, true); } else { if (input.Action == View.ActionEnum.MemberPresentation) { m_view.DisplayDetailedMemberPresentation(m_addingEditingMember); } else if (input.Action == View.ActionEnum.MemberDelete) { m_view.DisplayConfirmMemberDelete(m_addingEditingMember.Name); } else if (input.Action == View.ActionEnum.MemberConfirmDelete) { //try to remove the member from list if (m_memberList.DeleteMember(m_addingEditingMember.UniqueId)) { m_view.ShowSuccessMessage("Member deleted successfully."); } else { m_view.ShowErrorMessage("Could not delete the member."); } m_addingEditingMember = null; m_view.DisplayEnterAnyKeyToContinue(); } else if (input.Action == View.ActionEnum.MemberEdit) { m_view.DisplayEditMemberAttribute(View.AddEditMemberAttribute.Name, m_addingEditingMember); } else if (input.Action == View.ActionEnum.MemberAdd) { //create the new member to store details into m_addingEditingMember = new Model.Member(); m_view.DisplayAddMemberAttribute(View.AddEditMemberAttribute.Name); } else if (input.Action == View.ActionEnum.MemberBoatAdd) { //create the new boat to store details into m_addingEditingBoat = new Model.Boat(); m_view.DisplayAddBoatAttribute(View.AddEditBoatAttribute.Type, m_addingEditingMember); } else if (input.Action == View.ActionEnum.MemberBoatConfirmDelete) { //try to remove the boat from list if (m_addingEditingMember.DeleteBoat(m_addingEditingBoat)) { m_view.ShowSuccessMessage("Boat deleted successfully."); } else { m_view.ShowErrorMessage("Could not delete the boat."); } m_addingEditingMember = null; m_addingEditingBoat = null; m_view.DisplayEnterAnyKeyToContinue(); } else //Input of some kind (adding/editing member/boat) { //try to set the attribute in stored member/boat bool success = false; string errorMessage = null; try { if ((addingMember || addingBoat) && input.Characters == "") { throw new Exception("Can't leave this field empty."); } if (input.Characters != "") //if nothing is supplied, user didn't want to change anything { //Member if (input.Action == View.ActionEnum.MemberEditedName || input.Action == View.ActionEnum.MemberAddingName) { m_addingEditingMember.Name = input.Characters; } else if (input.Action == View.ActionEnum.MemberEditedPersonalNumber || input.Action == View.ActionEnum.MemberAddingPersonalNumber) { if (m_memberList.IsPersonalNumberUnique(input.Characters, m_addingEditingMember)) { m_addingEditingMember.PersonalNumber = input.Characters; } else { //error errorMessage = "Personal number already exists in another member."; } } //Boat else if (input.Action == View.ActionEnum.MemberBoatAddingType || input.Action == View.ActionEnum.MemberBoatEditedType) { m_addingEditingBoat.Type = (Model.Boat.BoatType)int.Parse(input.Characters); } else if (input.Action == View.ActionEnum.MemberBoatAddingLength || input.Action == View.ActionEnum.MemberBoatEditedLength) { m_addingEditingBoat.Length = double.Parse(input.Characters); } } if (errorMessage == null) { success = true; } } catch (Exception e) { errorMessage = e.Message; } if (success) { //Member if (input.Action == View.ActionEnum.MemberEditedName) { //go on to edit personal number m_view.DisplayEditMemberAttribute(View.AddEditMemberAttribute.Personal_Number, m_addingEditingMember); } else if (input.Action == View.ActionEnum.MemberEditedPersonalNumber) { //successfully edited member, show message m_view.ShowSuccessMessage("Member successfully edited.", true); //display change member menu m_view.DisplayChangeMemberMenu(m_addingEditingMember, false); } else if (input.Action == View.ActionEnum.MemberAddingName) { //go on to add personal number m_view.DisplayAddMemberAttribute(View.AddEditMemberAttribute.Personal_Number); } else if (input.Action == View.ActionEnum.MemberAddingPersonalNumber) { //all attributes added, now try to save the member to list if (this.MemberList.AddMember(m_addingEditingMember, true)) { //successfully added to the member list, show message m_view.ShowSuccessMessage("Member successfully added.", true); //display members list m_view.DisplaySelectMemberMenu(m_memberList, false, false); } else { //could not add the member for some reason.. show error message (should never happen) m_view.ShowErrorMessage("Error: could not add the member to the list..."); } } //Boat else if (input.Action == View.ActionEnum.MemberBoatEditedType) { //go on to edit length m_view.DisplayEditBoatAttribute(View.AddEditBoatAttribute.Length, m_addingEditingMember, m_addingEditingBoat); } else if (input.Action == View.ActionEnum.MemberBoatEditedLength) { //successfully edited boat, show message m_view.ShowSuccessMessage("Boat successfully edited.", true); //display change member menu m_view.DisplayChangeMemberMenu(m_addingEditingMember, false); } else if (input.Action == View.ActionEnum.MemberBoatAddingType) { //go on to add length m_view.DisplayAddBoatAttribute(View.AddEditBoatAttribute.Length, m_addingEditingMember); } else if (input.Action == View.ActionEnum.MemberBoatAddingLength) { //all attributes added, now try to save the member to list if (m_addingEditingMember.AddBoat(m_addingEditingBoat)) { //successfully added to the member list, show message m_view.ShowSuccessMessage("Boat successfully added.", true); //display change member menu m_view.DisplayChangeMemberMenu(m_addingEditingMember, false); } else { //could not add the member for some reason.. show error message (should never happen) m_view.ShowErrorMessage("Error: could not add the boat..."); } } } else { //show error message m_view.ShowErrorMessage(errorMessage, true); //let the loop continue so the user can try again } } } } else { //should never occur (if all actions are implemented above) throw new Exception("The action " + input.Action.ToString() + " has not been implemented yet.."); } } return false; }
private bool SelectBoatFromInputNumber(string input) { m_addingEditingBoat = null; int boatNumber = -1; try { //parse the boat number and try to retrieve it from the boat list boatNumber = int.Parse(input); m_addingEditingBoat = m_addingEditingMember.GetBoat(boatNumber - 1); } catch { } if (m_addingEditingBoat != null) { return true; } return false; }
private void HandleEventAddNewBoat(Model.Member member, View.Console view, Model.MemberRegister register) { view.ShowInputInfo(View.Console.MenuEvent.AddBoat, member); Model.Boat boat = new Model.Boat(); boat.ID = register.GetNextBoatIdFor(member); try { boat.Model = (Model.Boat.BoatModel)view.InputBoatModel(); } catch(ArgumentException) { view.ShowErrorMessage(View.Console.Error.InvalidBoatModel, null); view.Wait(); return; } try { boat.Length = view.InputBoatLenght(); } catch (ArgumentException) { view.ShowErrorMessage(View.Console.Error.InvalidBoatLenght, null); view.Wait(); return; } member.AddBoat(boat); register.Save(); }
public void HandleEventShowManageBoatsMenu(Model.Member member, View.ConsoleView view, Model.MemberRegistry registry) { while (true) { view.ShowMenu(View.MenuEvent.ManageBoatsMenu, member); int boatId; switch (view.GetMenuSelection()) { case View.MenuEvent.AddBoat: HandleEventAddNewBoat(member, view, registry); break; case View.MenuEvent.EditBoatMenu: if (member.GetBoatCount() == 1) { boatId = member.GetBoats().First().ID; } else { view.ShowInputInfo(View.MenuEvent.EditBoatMenu, member); boatId = view.InputBoatID(); } try { Model.Boat b = member.GetBoat(boatId); HandleEventShowEditBoatMenu(member, b, view, registry); } catch (ArgumentException) { view.ShowErrorMessage(View.Error.NoBoatWithId, boatId.ToString()); view.Wait(); } break; case View.MenuEvent.DeleteBoat: if (member.GetBoatCount() == 1) { boatId = member.GetBoats().First().ID; } else { view.ShowInputInfo(View.MenuEvent.DeleteBoat, member); boatId = view.InputBoatID(); } try { member.DeleteBoat(boatId); break; } catch (ArgumentException) { view.ShowErrorMessage(View.Error.NoBoatWithId, boatId.ToString()); view.Wait(); } break; case View.MenuEvent.Back: return; } } }
private void UpdateMode(Model.BoatCatalog boatCatalog) { if (Cin.boolResponseOfQuestion(View.ConsoleIn.FAQProceedUnlock, "yY")) { while (true) { try { Cout.Print(View.ConsoleIn.FAQBoatWhichtoEdit); int clientsChoice = -1 + Cin.readKeyToInt(); boat = boatCatalog.Read(clientsChoice); if (Cin.boolResponseOfQuestion(string.Format(View.ConsoleIn.FAQPreviousValue, boat.Type), "yY")) { Cout.Print(View.ConsoleIn.FAQBoatType); boat.Type = (Model.Boat.TypeBoat)Cin.readKeyToInt(); } if (Cin.boolResponseOfQuestion(string.Format(View.ConsoleIn.FAQPreviousValue, boat.Length), "yY")) { boat.Length = int.Parse(Cin.ResponseToAskedQustion(View.ConsoleIn.FAQBoatLength)); } } catch (Exception e) { new View.Error(e); Cin.boolResponseOfQuestion(View.ConsoleIn.FAQContinueWithY, "yY"); break; } break; } } }
private void DeleteMode(Model.BoatCatalog boatCatalog) { if (Cin.boolResponseOfQuestion(View.ConsoleIn.FAQProceedUnlock, "yY")) { while (true) { try { Cout.Print(View.ConsoleIn.FAQBoatWhichtoDelete); int clientsChoice = -1 + Cin.readKeyToInt(); boat = boatCatalog.Read(clientsChoice); boatCatalog.delete(boat); } catch (Exception e) { new View.Error(e); Cin.boolResponseOfQuestion(View.ConsoleIn.FAQContinueWithY, "yY"); break; } break; } } }
public void addBoat(string c_boatType, float c_length, Member m) { Model.Boat boat = new Model.Boat(c_boatType, c_length); m.Boats.Add(boat); saveChange(); }