예제 #1
0
        /// <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);
        }
예제 #2
0
        /// <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);
        }