//Constructor
        public MemberRegistry(View.Console a_view)
        {
            m_isInStartup = true;
            m_view = a_view;

            //try to load member list from storage
            m_memberListDAL = new Model.MemberListDAL();
            m_memberList = m_memberListDAL.LoadMemberList();
            if (m_memberList == null)
            {
                m_memberList = new Model.MemberList();
            }

            //subscribe to the MemberList
            m_memberList.AddSubscriber(this);

            //try to load user list from storage
            m_userListDAL = new Model.UserListDAL();
            m_userList = m_userListDAL.LoadUserList();
            if (m_userList == null)
            {
                m_userList = new Model.UserList();
            }

            //subscribe to the UserList
            m_userList.AddSubscriber(this);

            m_addingEditingMember = null;
            m_loggedInUser = null;
            m_memberFiltering = null;

            m_isInStartup = false;
        }
Example #2
0
        public void HandleEventNewMember(View.Console view, Model.MemberRegister register)
        {
            view.ShowInputInfo(View.Console.MenuEvent.AddNewMember, null);

            Model.Member m = new Model.Member(register.GetNextMemberId());

            try
            {
                m.Name = view.InputMemberName();
            }
            catch (ArgumentException)
            {
                view.ShowErrorMessage(View.Console.Error.InvalidMemberName, null);
                view.Wait();
                return;
            }
            try { m.PersonalNumber = view.InputMemberPersonalNumber(); }
            catch (ArgumentException)
            {
                view.ShowErrorMessage(View.Console.Error.InvalidPersonalNumber, null);
                view.Wait();
                return;
            }

            register.AddMember(m);
            register.Save();
        }
Example #3
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();
        }
Example #4
0
        private void ShowMainMenu(View.Console view, Model.MemberRegister register)
        {
            while (true)
            {
                view.ShowMenu(View.Console.MenuEvent.MainMenu, null);
                switch (view.GetMenuSelection())
                {
                case View.Console.MenuEvent.AddNewMember:
                    HandleEventNewMember(view, register);
                    break;

                case View.Console.MenuEvent.MemberListMenu:
                    HandleEventShowMemberListMenu(view, register);
                    break;

                case View.Console.MenuEvent.MemberInfoMenu:
                    view.ShowInputInfo(View.Console.MenuEvent.MemberInfoMenu, null);
                    int id = view.InputMemberID();
                    if (id == 0)
                    {
                        break;
                    }

                    try
                    {
                        Model.Member m = register.GetMember(id);
                        HandleEventShowMemberInfoMenu(m, view, register);
                    }
                    catch (ArgumentException)
                    {
                        view.ShowErrorMessage(View.Console.Error.NoMemberWithId, id.ToString());
                        view.Wait();
                    }
                    break;

                case View.Console.MenuEvent.DeleteMember:
                    view.ShowInputInfo(View.Console.MenuEvent.DeleteMember, null);
                    id = view.InputMemberID();
                    if (id == 0)
                    {
                        break;
                    }

                    try
                    {
                        register.DeleteMember(register.GetMember(id));
                        register.Save();
                    }
                    catch (ArgumentException)
                    {
                        view.ShowErrorMessage(View.Console.Error.NoMemberWithId, id.ToString());
                        view.Wait();
                    }
                    break;

                case View.Console.MenuEvent.Exit:
                    return;
                }
            }
        }
Example #5
0
        public void HandleEventShowMemberInfoMenu(Model.Member member, View.Console view, Model.MemberRegister register)
        {
            while (true)
            {
                view.ShowMenu(View.Console.MenuEvent.MemberInfoMenu, member);
                switch (view.GetMenuSelection())
                {
                case View.Console.MenuEvent.EditMemberName:
                    view.ShowInputInfo(View.Console.MenuEvent.EditMemberName, member);
                    try
                    {
                        member.Name = view.InputMemberName();
                        register.Save();
                    }
                    catch (ArgumentException)
                    {
                        view.ShowErrorMessage(View.Console.Error.InvalidMemberName, null);
                        view.Wait();
                    }
                    break;

                case View.Console.MenuEvent.EditMemberPersonalNumber:
                    view.ShowInputInfo(View.Console.MenuEvent.EditMemberPersonalNumber, member);
                    try
                    {
                        member.PersonalNumber = view.InputMemberPersonalNumber();
                        register.Save();
                    }
                    catch (ArgumentException)
                    {
                        view.ShowErrorMessage(View.Console.Error.InvalidPersonalNumber, null);
                        view.Wait();
                    }
                    break;

                case View.Console.MenuEvent.ManageBoatsMenu:
                    HandleEventShowManageBoatsMenu(member, view, register);
                    register.Save();
                    break;

                case View.Console.MenuEvent.Back:
                    // exit menu.
                    return;
                }
            }
        }
Example #6
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;
                }
            }
        }
        //Constructor
        public MemberRegistry(View.Console a_view)
        {
            m_isInStartup = true;

            m_view = a_view;
            m_storage = new Model.Storage();

            //try to load member list from storage
            m_memberList = m_storage.LoadMemberList();
            if (m_memberList == null)
            {
                m_memberList = new Model.MemberList();
            }

            //subscribe to the MemberList
            m_memberList.AddSubscriber(this);

            m_addingEditingMember = null;

            m_isInStartup = false;
        }
Example #8
0
        public void HandleEventShowMemberListMenu(View.Console view, Model.MemberRegister register)
        {
            while (true)
            {
                view.ShowMenu(View.Console.MenuEvent.MemberListMenu, null);
                switch (view.GetMenuSelection())
                {
                case View.Console.MenuEvent.MemberListSimple:
                    view.ShowMemberList(register.GetMemberList(), true);
                    view.Wait();
                    break;

                case View.Console.MenuEvent.MemberListComplete:
                    view.ShowMemberList(register.GetMemberList(), false);
                    view.Wait();
                    break;

                case View.Console.MenuEvent.Back:
                    // exit menu.
                    return;
                }
            }
        }
Example #9
0
        public void StartApplication()
        {
            mDAL = new MemberDAL();
                c = new View.Console();
                try
                {
                    mDAL.LoadMembersFromBin();
                }
                catch (Exception e)
                {

                    c.ErrorMessage(e);
                }
                while (true)
                {
                    try
                    {
                        c.DisplayInstructions();
                        int userInput = int.Parse(c.GetUserInput());
                        IReadOnlyCollection<Member> list = mDAL.getMemberList();
                        switch (userInput)
                        {
                            case 1: // save and quit
                                mDAL.SaveMembersToBin();
                                Environment.Exit(0);
                                break;
                            case 2: // add member
                                Console.Clear();
                                while (true)
                                {
                                    c.addMemberInstructionPrompt();
                                    try
                                    {
                                        //fname, lname, ssn
                                        m = new Member(c.GetUserInput(), c.GetUserInput(), c.GetUserInput());
                                        mDAL.addMemberToList(m);
                                    }
                                    catch
                                    {
                                        throw new ArgumentException();
                                    }
                                    break;
                                }

                                break;
                            case 3: // show compact list
                                Console.Clear();
                                c.showMembersCompact(list);
                                selectMember(list);
                                break;
                            case 4: // show verbose list
                                Console.Clear();
                                c.showMembersVerbose(list);
                                selectMember(list);
                                break;
                            default:
                                break;
                        }
                    }
                    catch (Exception e)
                    {
                        c.ErrorMessage(e);
                    }
                }
        }
Example #10
0
 public void Start(View.Console view, Model.MemberRegister register)
 {
     ShowMainMenu(view, register);
 }
Example #11
0
        public void HandleEventShowManageBoatsMenu(Model.Member member, View.Console view, Model.MemberRegister register)
        {
            while (true)
            {
                view.ShowMenu(View.Console.MenuEvent.ManageBoatsMenu, member);
                int boatId;

                switch (view.GetMenuSelection())
                {
                case View.Console.MenuEvent.AddBoat:
                    HandleEventAddNewBoat(member, view, register);
                    break;

                case View.Console.MenuEvent.EditBoatMenu:
                    if (member.GetBoatCount() == 1)
                    {
                        boatId = member.GetBoats().First().ID;
                    }
                    else
                    {
                        view.ShowInputInfo(View.Console.MenuEvent.EditBoatMenu, member);
                        boatId = view.InputBoatID();
                    }

                    try
                    {
                        Model.Boat b = member.GetBoat(boatId);
                        HandleEventShowEditBoatMenu(member, b, view, register);
                    }
                    catch (ArgumentException)
                    {
                        view.ShowErrorMessage(View.Console.Error.NoBoatWithId, boatId.ToString());
                        view.Wait();
                    }
                    break;

                case View.Console.MenuEvent.DeleteBoat:
                    if (member.GetBoatCount() == 1)
                    {
                        boatId = member.GetBoats().First().ID;
                    }
                    else
                    {
                        view.ShowInputInfo(View.Console.MenuEvent.DeleteBoat, member);
                        boatId = view.InputBoatID();
                    }

                    try
                    {
                        member.DeleteBoat(boatId);
                        break;
                    }
                    catch (ArgumentException)
                    {
                        view.ShowErrorMessage(View.Console.Error.NoBoatWithId, boatId.ToString());
                        view.Wait();
                    }
                    break;

                case View.Console.MenuEvent.Back:
                    // exit menu
                    return;
                }
            }
        }