public async Task <User> CreateUserAsync(User user) { user.Password = _passwordStorage.CreateHash(user.Password); var newUser = await UsersRepo.CreateUserAsync(_mapper.Map <UserEntity>(user)); return(_mapper.Map <User>(newUser)); }
/// <summary> /// Register new user /// </summary> /// <param name="user"></param> public async Task <JsonWebToken> SignUp(CreateUser user) { user.Email = string.IsNullOrEmpty(user.Email) ? "" : user.Email.ToLower(); var existingUser = (await _userRepository.Get(x => x.Email == user.Email)).FirstOrDefault(); if (existingUser != null) { throw new ApplicationException("This email address is already in use by another account"); } try { var userModel = new User() { Id = ObjectId.GenerateNewId().ToString(), UId = Guid.NewGuid(), Email = user.Email, PasswordHash = _encryptPassword.CreateHash(user.Password), UserType = user.UserRole.ToString(), FirstName = user.FirstName, LastName = user.LastName, TermsAccepted = user.TermsConditionsAccepted, CreatedOn = DateTime.UtcNow, IsDeleted = false }; await _userRepository.Add(userModel); var jsonWebToken = _jwtHandler.Create(userModel.Id, user.UserRole.ToString(), true); jsonWebToken.Username = user.Email; return(jsonWebToken); } catch (Exception ex) { throw new ApplicationException("Register error - " + ex.Message); } }
/// <summary> /// Register new user /// </summary> /// <param name="user"></param> public async Task <AuthenticationResult> SignUp(CreateUser user) { user.Email = string.IsNullOrEmpty(user.Email) ? "" : user.Email.ToLower(); var existingUser = (await _userRepository.Get(x => x.Email == user.Email)).FirstOrDefault(); if (existingUser != null) { return(new AuthenticationResult { Success = false, Message = "This email address is already in use by another account", }); } try { var userModel = new User() { Id = ObjectId.GenerateNewId().ToString(), Email = user.Email, PasswordHash = _encryptPassword.CreateHash(user.Password), Name = user.Name, ProfilePhoto = "https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcTJ-mXuETtV9PelHdVOYG7yMwKVZpW1NGNpFwND484eFIxU8IBe", CreatedOn = DateTime.UtcNow, IsDeleted = false }; await _userRepository.Add(userModel); var jsonWebToken = _jwtHandler.Create(userModel.Id); var userProfile = new UserView { Id = userModel.Id, Name = userModel.Name, ProfilePhoto = userModel.ProfilePhoto }; return(new AuthenticationResult { Success = true, Token = jsonWebToken, User = userProfile }); } catch (Exception ex) { return(new AuthenticationResult { Success = false, Message = "Register error - " + ex.Message, }); } }
public async Task <IActionResult> Register([FromBody] LoginModel loginModel) { var login = new Login { Identity = loginModel.Identity, PasswordHash = _passwordStorage.CreateHash(loginModel.Password), Role = Role.Student }; foreach (var teamMemberModel in loginModel.TeamMembers) { login.TeamMembers.Add(new TeamMember { Login = login, MemberId = teamMemberModel.MemberId }); } var createdLogin = await _loginRepository.AddAsync(login); return(Created("api/accounts/register", CreateLoginModel(createdLogin))); }
/// <summary> /// Register new user /// </summary> /// <param name="user"></param> public async Task <JsonWebToken> SignUp(CreateUser user) { try { if (user == null) { throw new ApplicationException("Incomplete register request - user is null"); } if (user.Email == null) { throw new ApplicationException("Incomplete register request - user's email is null"); } if (user.Password == null || user.Password.Length == 0) { throw new ApplicationException("Incomplete register request - Password is null"); } // hash password var passHash = _encryptPassword.CreateHash(user.Password); //var passHash = new PBKDF2(user.Password,SALT_BYTES,PBKDF2_ITERATIONS,"HMACSHA512"); var UId = Guid.NewGuid(); var objectId = ObjectId.GenerateNewId().ToString(); var login = new Login() { Id = objectId, UId = UId, Username = user.Email, PasswordHash = passHash, IsDisabled = false, EmailAddressAuthorized = true, ExpiredOn = DateTime.UtcNow.AddHours(24), PasswordFormat = PBKDF2_ITERATIONS, TermsAccepted = user.TermsConditionsAccepted }; if (user.UserRole == "recruiter") { var newRecruitor = new Recruiter() { Id = objectId, CreatedOn = DateTime.UtcNow, IsDeleted = false, UId = UId, Login = login }; newRecruitor.CompanyContact.Email = user.Email; newRecruitor.CompanyContact.Name = user.CompanyName; await _recruitorRepository.Add(newRecruitor); return(_jwtHandler.Create(newRecruitor.Id, user.UserRole, true)); } else if (user.UserRole == "employer") { var newEmployer = new Employer() { Id = objectId, CreatedOn = DateTime.UtcNow, IsDeleted = false, UId = UId, Login = login, }; newEmployer.CompanyContact.Email = user.Email; newEmployer.CompanyContact.Name = user.CompanyName; await _employerRepository.Add(newEmployer); return(_jwtHandler.Create(newEmployer.Id, user.UserRole, true)); } else { var newTalent = new User() { Id = objectId, FirstName = user.FirstName, LastName = user.LastName, CreatedOn = DateTime.UtcNow, IsDeleted = false, UId = UId, Login = login, }; await _userRepository.Add(newTalent); return(_jwtHandler.Create(newTalent.Id, user.UserRole, true)); } } catch (Exception ex) { throw new ApplicationException("Register error - " + ex.Message); } }
/// <summary> /// Register new customer /// </summary> /// <param name="user"></param> public async Task Register(SignUpPersonal user) { try { if (user == null) { throw new ApplicationException("Incomplete register request - user is null"); } if (user.EmailAddress == null) { throw new ApplicationException("Incomplete register request - user's email is null"); } if (user.Password == null || user.Password.Length == 0) { throw new ApplicationException("Incomplete register request - Password is null"); } var existingUser = _userRepository.Get(x => x.Login.Username == user.EmailAddress).FirstOrDefault(); if (existingUser != null) { throw new ApplicationException("Email address has been used in registration."); } // hash password var passHash = _encryptPassword.CreateHash(user.Password); //var passHash = new PBKDF2(user.Password,SALT_BYTES,PBKDF2_ITERATIONS,"HMACSHA512"); var UId = Guid.NewGuid(); var objectId = ObjectId.GenerateNewId().ToString(); var login = new Login() { Id = objectId, UId = UId, Username = user.EmailAddress, PasswordHash = passHash, IsDisabled = true, EmailAddressAuthorized = false, EmailCode = user.EmailCode, ExpiredOn = DateTime.UtcNow.AddHours(24), PasswordFormat = PBKDF2_ITERATIONS, TermsAccepted = user.TermsConditionsAccepted }; var person = new User() { Id = objectId, FirstName = user.FirstName, LastName = user.LastName, MobilePhone = user.MobileNumber, CreatedOn = DateTime.UtcNow, IsDeleted = false, UId = UId, Login = login, }; await _userRepository.Add(person); } catch (Exception ex) { throw new ApplicationException("Register error - " + ex.Message); } }