/// <summary> /// Checkt of de gegeven gebruikersnaam bestaat voor de gegeven gebruikerType /// Checkt of het wachtwoord bij de gebruikersnaam hoort /// Logt de gebruiker in /// </summary> /// <param name="gebruikerType">Welk soort gebruiker (klant,medewerker,eigenaar)</param> /// <returns>De ingelogde gebruiker</returns> public Gebruiker logIn(string gebruikerType) { Func <Gebruiker, Tuple <bool, string> > CheckWachtwoord = (gebruikerObject) => { SecureString pass = VarComponents.MaskStringInput(); string Input = new System.Net.NetworkCredential(string.Empty, pass).Password; return(Tuple.Create(Input == gebruikerObject.Wachtwoord || Input == "0", Input)); }; while (true) { bool NaamBestaat = false; Klant klantObject = null; Medewerker medewerkerObject = null; Eigenaar eigenaarObject = null; Console.Clear(); Console.WriteLine(ASCIIART.LoginArt()); Console.WriteLine("Voer uw gebruikersnaam in\x0A\x0A" + "0: Terug"); string GegevenNaam = Console.ReadLine(); if (GegevenNaam == "0") { return(new Gebruiker("", "", "", "")); } if (gebruikerType == "Klant") { foreach (Klant klant in Klanten) { if (GegevenNaam == klant.Naam) { NaamBestaat = true; klantObject = klant; } } } else if (gebruikerType == "Medewerker") { foreach (Medewerker medewerker in Medewerkers) { if (GegevenNaam == medewerker.Naam) { NaamBestaat = true; medewerkerObject = medewerker; } } } else { if (GegevenNaam == Eigenaar.Naam) { NaamBestaat = true; eigenaarObject = Eigenaar; } } if (NaamBestaat) { Tuple <bool, string> Password = Tuple.Create(false, ""); Console.Clear(); Console.WriteLine(ASCIIART.LoginArt()); Console.WriteLine($"Gebruikersnaam: {GegevenNaam}\x0A\x0AVoer uw wachtwoord in:"); if (gebruikerType == "Klant") { Password = CheckWachtwoord(klantObject); } else if (gebruikerType == "Medewerker") { Password = CheckWachtwoord(medewerkerObject); } else { Password = CheckWachtwoord(eigenaarObject); } while (!Password.Item1) { Console.Clear(); Console.WriteLine(ASCIIART.LoginArt()); Console.WriteLine("Verkeerd wachtwoord\x0A\x0A\x0AVoer uw wachtwoord in:\x0A\x0A" + "0: Terug"); if (klantObject != null) { Password = CheckWachtwoord(klantObject); } else { Password = CheckWachtwoord(medewerkerObject); } } if (Password.Item2 != "0") { Console.Clear(); Console.WriteLine(ASCIIART.LoginArt()); Console.WriteLine("U bent ingelogd!\x0A\x0A" + "0: Naar het startscherm"); Console.ReadKey(); if (klantObject != null) { return(klantObject); } else if (medewerkerObject != null) { return(medewerkerObject); } else { return(eigenaarObject); } } } else { Console.Clear(); Console.WriteLine(ASCIIART.LoginArt()); Console.WriteLine("Verkeerde gebruikersnaam.\x0A\x0A" + "Enter: Probeer opnieuw in te loggen\x0A\x0A" + "0: Terug"); if (Console.ReadKey().KeyChar == '0') { return(new Gebruiker("", "", "", "")); } } } }
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); }