/// <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("", "", "", "")); } } } }
} //Empty constructor for json deserialisen. public Gebruiker accountManager(Gebruiker gebruiker) { bool verkeerdeInput = false; while (true) { Console.Clear(); Console.WriteLine(ASCIIART.LoginArt()); Console.WriteLine("1: Login als klant\x0a"); Console.WriteLine("2: Login als medewerker\n"); Console.WriteLine("3: Login als eigenaar\n"); Console.WriteLine("4: Registreer een nieuw account als klant\x0a"); Console.WriteLine("0: Terug\x0a"); if (verkeerdeInput) { Console.WriteLine("Verkeerde input, probeer 1,2,3, 4 of 0"); } ConsoleKeyInfo userInput = Console.ReadKey(); char userInputChar = userInput.KeyChar; switch (userInputChar) { case '1': gebruiker = logIn("Klant"); //return logIn(); if (gebruiker as Klant != null) { return(gebruiker); } break; case '2': gebruiker = logIn("Medewerker"); if (gebruiker as Medewerker != null) { return(gebruiker); } break; case '3': gebruiker = logIn("Eigenaar"); if (gebruiker as Eigenaar != null) { return(gebruiker); } break; case '4': gebruiker = registreerKlant(gebruiker); if (gebruiker as Klant != null) { return(gebruiker); } break; case '0': return(gebruiker); default: verkeerdeInput = true; break; } } }