Beispiel #1
0
        // Method to render the list of members.
        public void Render(List<Member> members)
        {
            MemberView mView = new MemberView();

            mView.RenderHeader("          Visar medlemmar         ");

            // Iterate through the members list.
            foreach (var member in members)
            {
                Render(member);
            }
        }
Beispiel #2
0
        //Visar antingen en eller alla medlemmar beroende på om viewAll är true eller false
        private static void ViewMember(List<Member> members, bool viewAll = false)
        {
            MemberView memberView = new MemberView();

            if (viewAll == false)
            {
                do
                {
                    string header = "       Välj medlem att visa        ";
                    Member memberSelection = GetMember(header, members);

                    if (memberSelection == null)
                    {
                        break;
                    }
                    else
                    {
                        Console.Clear();

                        memberView.Render(memberSelection);

                        ContinueOnKeyPressed();
                    }
                } while (true);
            }
            else
            {
                if (members == null || members.Count == 0)
                {
                    Console.BackgroundColor = ConsoleColor.DarkYellow;
                    Console.ForegroundColor = ConsoleColor.White;
                    Console.WriteLine("\n Det finns inga medlemmar i registret");
                    Console.ResetColor();
                    ContinueOnKeyPressed();
                }
                else
                {
                    Console.Clear();
                    memberView.Render(members);
                    ContinueOnKeyPressed();
                }
            }
        }
Beispiel #3
0
        // Method to delete a member from the list of members.
        private static void DeleteMember(List<Member> members)
        {
            string header;
            MemberView mView = new MemberView();

            // Check if there's any members otherwise display a warning message.
            if (members != null && members.Any())
            {
                // Display a header from the RenderHeader method.
                Console.Clear();
                mView.RenderHeader("      Välj medlem att ta bort     ");

                // Get the member we want using the GetMember method.
                Member m = GetMember("Välj medlem att ta bort", members);

                // If m is null just break out of the method.
                if (m == null)
                {
                    return;
                }

                // Check so the user is really sure that's this is the right recipe to
                // if it is; delete it. else; just return to the menu again.
                Console.BackgroundColor = ConsoleColor.Yellow;
                Console.ForegroundColor = ConsoleColor.Black;
                Console.Write("\n Är du säker på att du vill ta bort medlemmen: '{0} {1}' [j/n]: ", m.FirstName, m.LastName);
                Console.ResetColor();

                // Read the key...
                ConsoleKeyInfo inputKey = Console.ReadKey();

                // ... and check if the key is either small or large "j".
                if (inputKey.KeyChar == 'j' || inputKey.KeyChar == 'J')
                {
                    // Try to remove it otherwise display an error.
                    try
                    {
                        // Just remove it.
                        members.Remove(m);

                        // Save the file.
                        SaveMembers(members);

                        // Display a header from the RenderHeader method.
                        Console.Clear();
                        header = String.Format("      Medlemmen, {0} {1} har tagits bort    ", m.FirstName, m.LastName);
                        mView.RenderHeader(header, bgcolor: ConsoleColor.DarkGreen);
                    }
                    catch (Exception)
                    {
                        // Display a header from the RenderHeader method.
                        Console.Clear();
                        mView.RenderHeader(" FEL! Ett fel inträffade då medlemmen skulle tas bort.", bgcolor: ConsoleColor.Red);
                    }

                }
            }
            else
            {
                // Display a header from the RenderHeader method.
                Console.Clear();
                mView.RenderHeader(" Det finns inga medlemmar att ta bort", bgcolor: ConsoleColor.Yellow, fgcolor: ConsoleColor.Black);
            }
        }
Beispiel #4
0
        // Method to save members
        private static void SaveMembers(List<Member> members)
        {
            MemberView mView = new MemberView();

            // Check if there's any members otherwise display a warning message.
            if (members != null && members.Any())
            {
                // Try to save it otherwise display an error.
                try
                {
                    MemberDirectory repo = new MemberDirectory("members.txt");
                    repo.Save(members);

                    // Display a header from the RenderHeader method.
                    Console.Clear();
                    mView.RenderHeader("      Medlemmarna har sparats     ", bgcolor: ConsoleColor.DarkGreen);
                }
                catch (Exception)
                {
                    // Display a header from the RenderHeader method.
                    Console.Clear();
                    mView.RenderHeader(" FEL! Ett fel inträffade då medlemmarna skulle sparas.", bgcolor: ConsoleColor.Red);
                }
            }
            else
            {
                // Display a header from the RenderHeader method.
                Console.Clear();
                mView.RenderHeader("  Det finns inga medlemmar att spara ", bgcolor: ConsoleColor.Yellow, fgcolor: ConsoleColor.Black);
            }
        }
Beispiel #5
0
        // Method to view a member.
        private static void ViewMember(List<Member> members, bool viewAll = false)
        {
            string header;
            MemberView mView = new MemberView();

            // Check if there's any members otherwise display a warning message.
            if (members != null && members.Any())
            {
                if (!viewAll)
                {
                    Console.Clear();
                    mView.RenderHeader("       Välj medlem att visa       ");

                    // Get the member we want using the GetMember method.
                    Member m = GetMember("Välj medlem att visa", members);

                    // If m is null just break out of the method.
                    if (m == null)
                    {
                        return;
                    }

                    // Display a header from the RenderHeader method.
                    Console.Clear();
                    header = String.Format("      Visar medlem, {0} {1}      ", m.FirstName, m.LastName);
                    mView.RenderHeader(header);

                    // And render the user.
                    mView.Render(m);
                }
                else
                {
                    // Renders all the members.
                    Console.Clear();
                    mView.Render(members);
                }
            }
            else
            {
                // Display a header from the RenderHeader method.
                Console.Clear();
                mView.RenderHeader(" Det finns inga medlemmar att visa", bgcolor: ConsoleColor.Yellow, fgcolor: ConsoleColor.Black);
            }
        }
Beispiel #6
0
        // Private static method for loading the list of members.
        private static List<Member> LoadMembers()
        {
            MemberView mView = new MemberView();

            // Try to open a file named "members.txt" and the return the list so we can use that list
            // for all the other methods.
            try
            {
                MemberDirectory repo = new MemberDirectory("members.txt");
                List<Member> members = repo.Load();
                return members;
            }
            // Else catch the exception and return NULL as well as a error message will be presented.
            catch (Exception)
            {
                // Display a header from the RenderHeader method.
                Console.Clear();
                mView.RenderHeader(" FEL! Ett fel inträffade då medlemsregistret lästes in.", bgcolor: ConsoleColor.Red);

                // And return null.
                return null;
            }
        }
Beispiel #7
0
        // Private static method for displaying the Menu and read the choice.
        private static int GetMenuChoice()
        {
            int index;

            MemberView mView = new MemberView();

            do
            {
                // Output everything.
                mView.RenderHeader("          Medlemsregister         ");
                Console.WriteLine("\n - Arkiv ------------------------------\n");
                Console.WriteLine(" 0. Avsluta.");
                Console.WriteLine(" 1. Lägg till medlem.");
                Console.WriteLine("\n - Redigera ---------------------------\n");
                Console.WriteLine(" 2. Ändra medlem.");
                Console.WriteLine(" 3. Ta bort medlem.");
                Console.WriteLine("\n - Lista ------------------------------\n");
                Console.WriteLine(" 4. Lista en medlem.");
                Console.WriteLine(" 5. Lista alla medlemmar.");
                Console.WriteLine();
                MemberView.HorizontalLine(39);
                Console.WriteLine();
                Console.Write(" Ange menyval [0-5]: ");
                Console.ResetColor();

                // Check the choice and return it.
                if (int.TryParse(Console.ReadLine(), out index) && index >= 0 && index <= 5)
                {
                    return index;
                }

                Console.BackgroundColor = ConsoleColor.Red;
                Console.ForegroundColor = ConsoleColor.White;
                Console.WriteLine("\n FEL! Ange ett nummer mellan 0 och 5.\n");
                ContinueOnKeyPressed();
            } while (true);
        }
Beispiel #8
0
        // Method to present an indexed list of all members name
        // and let's the user choose from these names and then returns it.
        private static Member GetMember(string header, List<Member> members)
        {
            int index;

            MemberView mView = new MemberView();

            do
            {
                // Display a header from the RenderHeader method.
                Console.Clear();
                mView.RenderHeader(header);

                Console.BackgroundColor = ConsoleColor.Black;
                Console.WriteLine("\n 0. Avbryt.");
                Console.WriteLine("\n -----------------------------------\n");

                // Iterate through the list and display the members name.
                for (int item = 0; item < members.Count; item++)
                {
                    Console.WriteLine(" {0}. {1} {2} ", item + 1, members[item].FirstName, members[item].LastName);
                }

                Console.WriteLine("\n ═══════════════════════════════════ \n");
                Console.Write(" Välj medlem [1-{0}, avbryt (0)]: ", members.Count);
                Console.ResetColor();

                // Get the choice that the user made.
                bool choice = int.TryParse(Console.ReadLine(), out index) && index >= 0 && index <= members.Count;

                if (choice)
                {
                    // If the index is greater than zero return the member we choosed.
                    if (index > 0)
                    {
                        return members[index - 1];
                    }
                    // Else return null.
                    else
                    {
                        return null;
                    }

                }

                Console.BackgroundColor = ConsoleColor.Red;
                Console.ForegroundColor = ConsoleColor.White;
                Console.WriteLine("\n FEL! Ange ett nummer mellan 1 och {0}.\n", members.Count);
                ContinueOnKeyPressed();
            } while (true);
        }
Beispiel #9
0
        // Private static method for creating a member.
        private static Member CreateMember(List<Member> members)
        {
            if (members != null)
            {
                int userID;
                string firstName;
                string lastName;
                string phoneNum;
                MemberView mView = new MemberView();

                // Display a header from the RenderHeader method.
                Console.Clear();
                mView.RenderHeader("          Lägg till medlem        ");
                Console.WriteLine();

                // Call the methods for getting validated data.
                firstName = ReadString(" Förnamn: ");
                lastName = ReadString(" Efternamn: ");
                phoneNum = ReadNum(" Telefonnummer: ");

                // Output a "Are you sure prompt?" so the user can think two times.
                Console.BackgroundColor = ConsoleColor.Yellow;
                Console.ForegroundColor = ConsoleColor.Black;
                Console.Write("\n Är du säker på att du vill lägga till en medlem med förnamn '{0}', ", firstName);
                Console.Write("\n efternamn '{0}' samt telefonnummer '{1}' [j/n]: ", lastName, phoneNum);
                Console.ResetColor();

                // Read the key...
                ConsoleKeyInfo inputKey = Console.ReadKey();

                // ... and check if the key is either small or large "j".
                if (inputKey.KeyChar == 'j' || inputKey.KeyChar == 'J')
                {
                    if (members.Count < 1)
                    {
                        userID = 1;
                    }
                    else
                    {
                        userID = members[members.Count - 1].UserID + 1;
                    }

                    // Create a new member.
                    Member newMember = new Member(userID, firstName, lastName, phoneNum);

                    // Add it to the list.
                    members.Add(newMember);

                    // Save the member to the file...
                    SaveMembers(members);

                    // ... and return it.
                    return newMember;
                }
                else
                {
                    return null;
                }
            }
            else
            {
                return null;
            }
        }
Beispiel #10
0
        // Private static method for editing a member.
        private static void EditMember(List<Member> members)
        {
            int index;
            string firstName;
            string lastName;
            string phoneNum;
            string header;
            bool exit = false;
            MemberView mView = new MemberView();

            // Check if there's any members otherwise display a warning message.
            if (members != null && members.Any())
            {
                // Get the member we want using the GetMember method.
                Member m = GetMember("Välj medlem att ändra", members);

                // If m is null just break out of the method.
                if (m == null)
                {
                    return;
                }

                // Display a header from the RenderHeader method.
                Console.Clear();
                header = String.Format("      Ändra medlem, {0} {1}     ", m.FirstName, m.LastName);
                mView.RenderHeader(header);

                // Display a list of options for the user.
                do
                {
                    Console.WriteLine("\n - Arkiv -----------------------------------\n");
                    Console.WriteLine(" 0. Avbryt.");
                    Console.WriteLine("\n - Redigera --------------------------------\n");
                    Console.WriteLine(" 1. Ändra förnamn.");
                    Console.WriteLine(" 2. Ändra efternamn.");
                    Console.WriteLine(" 3. Ändra Telefonnummer.");
                    Console.WriteLine(" 4. Ändra allt.");
                    Console.WriteLine("\n ═══════════════════════════════════════════\n");
                    Console.Write(" Ange menyval [0-4]: ");
                    Console.ResetColor();

                    // Get the choice that the user made.
                    bool choice = int.TryParse(Console.ReadLine(), out index) && index >= 0 && index <= 4;

                    if (choice)
                    {
                        // Display a header from the RenderHeader method.
                        Console.Clear();
                        header = String.Format("      Ändrar medlem, {0} {1}     ", m.FirstName, m.LastName);
                        mView.RenderHeader(header);
                        Console.WriteLine();

                        if (index == 0)
                        {
                            exit = true;
                            continue;
                        }
                        else if (index == 1)
                        {
                            // Validate the firstName.
                            firstName = ReadString(" Förnamn: ");

                            // Output a "Are you sure prompt?" so the user can think two times.
                            Console.BackgroundColor = ConsoleColor.Yellow;
                            Console.ForegroundColor = ConsoleColor.Black;
                            Console.Write("\n Är du säker på att du vill ändra '{0} {1}'s förnamn till '{2}'? [j/n]: ", m.FirstName, m.LastName, firstName);
                            Console.ResetColor();

                            // Read the key...
                            ConsoleKeyInfo inputKey = Console.ReadKey();

                            // ... and check if the key is either small or large "j".
                            if (inputKey.KeyChar == 'j' || inputKey.KeyChar == 'J')
                            {
                                // Set the FirstName to what the user specified.
                                m.FirstName = firstName;

                                // Save it to file.
                                SaveMembers(members);

                                // Display a header from the RenderHeader method.
                                Console.Clear();
                                mView.RenderHeader(" Medlem har ändrats", bgcolor: ConsoleColor.DarkGreen);

                                // After changes have been made just exit from this.
                                exit = true;
                                continue;
                            }
                            else
                            {
                                exit = true;
                                continue;
                            }
                        }
                        else if (index == 2)
                        {
                            // Validate the lastName.
                            lastName = ReadString(" Efternamn: ");

                            // Output a "Are you sure prompt?" so the user can think two times.
                            Console.BackgroundColor = ConsoleColor.Yellow;
                            Console.ForegroundColor = ConsoleColor.Black;
                            Console.Write("\n Är du säker på att du vill ändra '{0} {1}'s efternamn till '{2}'? [j/n]: ", m.FirstName, m.LastName, lastName);
                            Console.ResetColor();

                            // Read the key...
                            ConsoleKeyInfo inputKey = Console.ReadKey();

                            // ... and check if the key is either small or large "j".
                            if (inputKey.KeyChar == 'j' || inputKey.KeyChar == 'J')
                            {
                                // Set the LastName to what the user specified.
                                m.LastName = lastName;

                                // Save it to file.
                                SaveMembers(members);

                                // Display a header from the RenderHeader method.
                                Console.Clear();
                                mView.RenderHeader("         Medlem har ändrats       ", bgcolor: ConsoleColor.DarkGreen);

                                // After changes have been made just exit from this.
                                exit = true;
                                continue;
                            }
                            else
                            {
                                exit = true;
                                continue;
                            }
                        }
                        else if (index == 3)
                        {
                            // Validate the phoneNum.
                            phoneNum = ReadNum(" Telefonnummer: ");

                            // Output a "Are you sure prompt?" so the user can think two times.
                            Console.BackgroundColor = ConsoleColor.Yellow;
                            Console.ForegroundColor = ConsoleColor.Black;
                            Console.Write("\n Är du säker på att du vill ändra '{0} {1}'s telefonnummer till '{2}'? [j/n]: ", m.FirstName, m.LastName, phoneNum);
                            Console.ResetColor();

                            // Read the key...
                            ConsoleKeyInfo inputKey = Console.ReadKey();

                            // ... and check if the key is either small or large "j".
                            if (inputKey.KeyChar == 'j' || inputKey.KeyChar == 'J')
                            {
                                // Set the PhoneNum to what the user specified.
                                m.PhoneNum = phoneNum;

                                // Save it to file.
                                SaveMembers(members);

                                // Display a header from the RenderHeader method.
                                Console.Clear();
                                mView.RenderHeader("         Medlem har ändrats       ", bgcolor: ConsoleColor.DarkGreen);

                                // After changes have been made just exit from this.
                                exit = true;
                                continue;
                            }
                            else
                            {
                                exit = true;
                                continue;
                            }
                        }
                        else if (index == 4)
                        {
                            // Validate all the input values.
                            firstName = ReadString(" Förnamn: ");
                            lastName = ReadString(" Efternamn: ");
                            phoneNum = ReadNum(" Telefonnummer: ");

                            // Output a "Are you sure prompt?" so the user can think two times.
                            Console.BackgroundColor = ConsoleColor.Yellow;
                            Console.ForegroundColor = ConsoleColor.Black;
                            Console.Write("\n Är du säker på att du vill ändra '{0} {1}'s förnamn till '{2}', ", m.FirstName, m.LastName, firstName);
                            Console.Write("\n efternamn till '{0}' samt telefonnummer till '{1}'? [j/n]: ", lastName, phoneNum);
                            Console.ResetColor();

                            // Read the key...
                            ConsoleKeyInfo inputKey = Console.ReadKey();

                            // ... and check if the key is either small or large "j".
                            if (inputKey.KeyChar == 'j' || inputKey.KeyChar == 'J')
                            {
                                // Set all the values to what the user specified.
                                m.FirstName = firstName;
                                m.LastName = lastName;
                                m.PhoneNum = phoneNum;

                                // Save it to file.
                                SaveMembers(members);

                                // Display a header from the RenderHeader method.
                                Console.Clear();
                                mView.RenderHeader("         Medlem har ändrats       ", bgcolor: ConsoleColor.DarkGreen);
                                // After changes have been made just exit from this.

                                exit = true;
                                continue;
                            }
                            else
                            {
                                exit = true;
                                continue;
                            }
                        }

                    }
                    else
                    {
                        Console.BackgroundColor = ConsoleColor.Red;
                        Console.ForegroundColor = ConsoleColor.White;
                        Console.WriteLine("\n FEL! Ange ett nummer mellan 0 och 6.\n");
                    }
                    ContinueOnKeyPressed();
                } while (!exit);
            }
            else
            {
                // Display a header from the RenderHeader method.
                Console.Clear();
                mView.RenderHeader(" Det finns inga medlemmar att ändra", bgcolor: ConsoleColor.Yellow, fgcolor: ConsoleColor.Black);
            }
        }