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();
 }
Ejemplo n.º 2
0
        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!");
        }
Ejemplo n.º 3
0
        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);
                }
            }
        }
Ejemplo n.º 4
0
        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;
                }
            }
        }
Ejemplo n.º 5
0
        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!");
            }
        }
Ejemplo n.º 6
0
        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;
        }
Ejemplo n.º 7
0
        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;
        }
Ejemplo n.º 8
0
 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;
        }
Ejemplo n.º 11
0
        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;
                }
            }
        }
Ejemplo n.º 13
0
        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;
                }
            }
        }
Ejemplo n.º 14
0
        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;
                }
            }
        }
Ejemplo n.º 15
0
 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();
 }