public Gebruiker registreerKlant(Gebruiker gebruiker)
        {
            Tuple <string, string, string, string> klantInformatie = registreer();

            if (klantInformatie == null)
            {
                return(gebruiker);
            }

            var jsonOptions = new JsonSerializerOptions
            {
                WriteIndented = true,
            };

            Klant[] nieuweKlantenLijst = new Klant[Klanten.Length + 1];

            for (int i = 0; i < Klanten.Length; i++)
            {
                nieuweKlantenLijst[i] = Klanten[i];                                                                                    //Voert alle oude klanten als Klant object in de nieuwe lijst
            }
            Klant nieuweKlant = new Klant(klantInformatie.Item1, klantInformatie.Item2, klantInformatie.Item3, klantInformatie.Item4); //nieuwe klant wordt aangemaakt

            nieuweKlantenLijst[nieuweKlantenLijst.Length - 1] = nieuweKlant;                                                           //voegt nieuwe klant toe aan lijst
            Klanten = nieuweKlantenLijst;                                                                                              //Klanten array van gebruikers wordt aangepast naar de nieuwe lijst die is gemaakt.
            var toSerializeKlant = JsonSerializer.Serialize(this, jsonOptions);

            File.WriteAllText("gebruikers.json", toSerializeKlant);


            Console.Clear();
            Console.WriteLine(ASCIIART.RegistrerenArt());
            Console.WriteLine($"Welkom nieuwe klant: {klantInformatie.Item1}!\nKlik op een toets om verder te gaan");
            Console.ReadKey();
            return(nieuweKlant);
        }
        public void registreerMedewerker() //void omdat alleen een eigenaar een medewerker account aan kan maken, de medewerker wordt dus alleen maar toegevoegd aan de lijst van medewerkers.
        {
            Tuple <string, string, string, string> medewerkerInformatie = registreer();

            if (medewerkerInformatie == null)
            {
                return;
            }


            var jsonOptions = new JsonSerializerOptions
            {
                WriteIndented = true,
            };

            Medewerker[] nieuweMedewerkerLijst = new Medewerker[Medewerkers.Length + 1];

            for (int i = 0; i < Medewerkers.Length; i++)
            {
                nieuweMedewerkerLijst[i] = Medewerkers[i];                                                                                                                //Voert alle oude medewerkers als Medewerker object in de nieuwe lijst
            }
            Medewerker nieuweMedewerker = new Medewerker(medewerkerInformatie.Item1, medewerkerInformatie.Item2, medewerkerInformatie.Item3, medewerkerInformatie.Item4); //nieuwe medewerker wordt aangemaakt.

            nieuweMedewerkerLijst[nieuweMedewerkerLijst.Length - 1] = nieuweMedewerker;                                                                                   //voegt nieuwe medewerker toe aan lijst
            Medewerkers = nieuweMedewerkerLijst;
            var toSerializeMedewerker = JsonSerializer.Serialize(this, jsonOptions);

            File.WriteAllText("gebruikers.json", toSerializeMedewerker);
            Console.Clear();
            Console.WriteLine(ASCIIART.RegistrerenArt());
            Console.WriteLine($"Medewerker {medewerkerInformatie.Item1} toegevoegd aan de lijst van medewerkers!\nKlik op een toets om terug te gaan");
            Console.ReadKey();
            return;
        }
        public Tuple <string, string, string, string> registreer() //Returned een Tuple met naam,wachtwoord,adres en woonplaats voor registreerKlant en registreerMedewerker functies.
        {
            var jsonOptions = new JsonSerializerOptions
            {
                WriteIndented = true,
            };

            Console.Clear();
            Console.WriteLine(ASCIIART.RegistrerenArt());
            Console.WriteLine("Voer een gebruikers naam in die alleen cijfers en/of letters bevat:\n0: Terug");
            var naamInput = Console.ReadLine();

            while (!VarComponents.IsUsername(naamInput))
            {
                Console.Clear();
                Console.WriteLine(ASCIIART.RegistrerenArt());
                Console.WriteLine("Verkeerde gebruikers naam\x0A\x0A\x0AVoer een gebruikers naam in die alleen cijfers en/of letters bevat:");
                naamInput = Console.ReadLine();
            }

            bool uniekeNaam = false;

            while (!uniekeNaam)
            {
                bool uniekKlant      = true;
                bool uniekMedewerker = true;
                bool uniekEigenaar   = true; //3 booleans voor iedere array.

                if (naamInput != "0")
                {
                    foreach (var klant in Klanten) //Checkt per klant in de Klanten array of de naam al bestaat
                    {
                        if (klant.Naam == naamInput)
                        {
                            uniekKlant = false;
                            break;
                        }
                    }
                    foreach (var medewerker in Medewerkers) //Checkt per medewerker in de Medewerkers array of de naam al bestaat
                    {
                        if (medewerker.Naam == naamInput)
                        {
                            uniekMedewerker = false;
                            break;
                        }
                    }
                    if (Eigenaar.Naam == naamInput)
                    {
                        uniekEigenaar = false;
                    }

                    if (uniekEigenaar == false || uniekKlant == false || uniekMedewerker == false)
                    {
                        Console.Clear();
                        Console.WriteLine(ASCIIART.RegistrerenArt());
                        Console.WriteLine("Deze naam bestaat al in het systeem!\x0A\x0A\x0AVoer een gebruikers naam in die alleen cijfers en letters bevat:\n0: Terug");
                        naamInput = Console.ReadLine();
                    }
                    else
                    {
                        uniekeNaam = true;
                    }
                }
                else
                {
                    return(null);
                }
            }

            Console.Clear();
            Console.WriteLine(ASCIIART.RegistrerenArt());
            Console.WriteLine("Voer een wachtwoord in van minimaal 8 tekens waarvan minimaal 1 Hoofdletter, 1 cijfer en 1 speciaal karakter:");
            SecureString pass1    = VarComponents.MaskStringInput();
            string       password = new System.Net.NetworkCredential(string.Empty, pass1).Password;

            while (!VarComponents.IsPassword(password))
            {
                Console.Clear();
                Console.WriteLine(ASCIIART.RegistrerenArt());
                Console.WriteLine("Verkeerd wachtwoord\x0A\x0A\x0AVoer uw wachtwoord in van minimaal 8 tekens waarvan minimaal 1 Hoofdletter, 1 cijfer en 1 speciaal karakter:");
                SecureString pass2 = VarComponents.MaskStringInput();
                password = new System.Net.NetworkCredential(string.Empty, pass2).Password;
            }

            Console.Clear();
            Console.WriteLine(ASCIIART.RegistrerenArt());
            Console.WriteLine("Voer een adres in (straatnaam en huisnummer):");
            string adres = Console.ReadLine();

            while (!VarComponents.IsAdres(adres))
            {
                Console.Clear();
                Console.WriteLine(ASCIIART.RegistrerenArt());
                Console.WriteLine("Verkeerd adres\x0A\x0A\x0AVoer uw adres in (straatnaam en huisnummer):");
                adres = Console.ReadLine();
            }

            Console.Clear();
            Console.WriteLine(ASCIIART.RegistrerenArt());
            Console.WriteLine("Voer een woonplaats in:");
            string woonplaats = Console.ReadLine();

            while (!VarComponents.IsWoonplaats(woonplaats))
            {
                Console.Clear();
                Console.WriteLine(ASCIIART.RegistrerenArt());
                Console.WriteLine("Verkeerde woonplaats\x0A\x0A\x0AVoer uw woonplaats in:");
                woonplaats = Console.ReadLine();
            }

            Tuple <string, string, string, string> returnTuple = Tuple.Create(naamInput, password, adres, woonplaats);

            return(returnTuple);
        }