/// <summary> /// Erstellt einen neuen Benutzer in der Datenbank. Dafür wird ein Salt generiert und der /// Hash des Passwortes berechnet. /// </summary> /// <param name="credentials"></param> /// <returns></returns> public async Task <User> CreateUserKunde(UserKundenDto credentials, PureFitDbContext con) { string salt = GenerateRandom(); // Den neuen Userdatensatz erstellen Kunde newKunde = new Kunde { K_Vorname = credentials.Vorname, K_Zuname = credentials.Zuname, K_Geschlecht = credentials.Geschlecht, K_GebDatum = Encoding.ASCII.GetBytes(credentials.GebDatum), K_Gewicht = Encoding.ASCII.GetBytes(credentials.Gewicht), K_Groesse = Encoding.ASCII.GetBytes(credentials.Groesse), K_TelefonNr = credentials.TelefonNr, K_Email = credentials.Email, K_Trainingslevel = con.Trainingslevel.Where(w => w.tr_levelname == credentials.Trainingslevel).Select(s => s.tr_levelNr).FirstOrDefault(), K_Nr = null }; con.Entry(newKunde).State = Microsoft.EntityFrameworkCore.EntityState.Added; await con.SaveChangesAsync(); User newUser = new User { U_Name = credentials.Username, U_Salt = salt, U_Hash = CalculateHash(credentials.Password, salt), U_Kunde_Nr = newKunde.K_Nr, U_Role = "Kunde", //Alle die sich registrieren sind Kunden und keine Admins zum bearbeiten U_ID = null //ID muss zuerst auf null gesetzt werden, weil db sonst nicht erkennt, dass AutoIncrement gesetzt werden soll! }; con.Entry(newUser).State = Microsoft.EntityFrameworkCore.EntityState.Added; await con.SaveChangesAsync(); return(newUser); }
/// <summary> /// Erstellt einen neuen Benutzer in der Datenbank. Dafür wird ein Salt generiert und der /// Hash des Passwortes berechnet. /// </summary> /// <param name="credentials"></param> /// <returns></returns> public async Task <User> CreateUser(UserDto credentials, PureFitDbContext con) { string salt = GenerateRandom(); User newUser = new User { U_Name = credentials.Username, U_Salt = salt, U_Hash = CalculateHash(credentials.Password, salt), U_Kunde_Nr = null, U_Role = "Admin", //Alle die sich registrieren sind Kunden und keine Admins zum bearbeiten U_ID = null //ID muss zuerst auf null gesetzt werden, weil db sonst nicht erkennt, dass AutoIncrement gesetzt werden soll! }; con.Entry(newUser).State = Microsoft.EntityFrameworkCore.EntityState.Added; await con.SaveChangesAsync(); return(newUser); }