public async Task <IActionResult> RegisterStudent(StudentDTO st) { if (!ModelState.IsValid) { return(BadRequest(new { message = "Fill all fields" })); } var student = new Student() { FirstName = st.FirstName, LastName = st.LastName, Email = st.Email, Role = "user", }; if (await _authRepos.UserExists(student)) { return(BadRequest(new { message = "This user already exists" })); } student = await _authRepos.Register(student, st.Password); if (student == null) { return(BadRequest(new { message = "Oops, failed to register" })); } var identity = await CreateIdentity(st.Email, st.Password); string token = TokenCreatingService.CreateToken(identity, out string identityName, Configuration); HttpContext.Session.SetString("Token", token); HttpContext.Session.SetInt32("Id", student.StudentId); HttpContext.Session.SetString("Name", student.FirstName); HttpContext.Session.SetString("Role", student.Role); return(Ok(new { token = token, name = identityName })); }
public CommandResult Register(UserRegisterCommand command) { var exist = _repository.Exists(command.Username); if (exist) { AddNotification("Já existe um Usuario cadastrado com esse Nome. "); } var user = new UserAuth(command.Username, command.Password); AddNotifications(user); if (Invalid) { return(new CommandResult(false, GroupNotifications.Group(Notifications), command)); } // Add Hash e Salt var salt = Salt.Create(); var hash = Hash.Create(user.Password, salt); if (!Hash.Validate(user.Password, salt, hash)) { AddNotification("Erro na geração do Hash. "); } user.AddHash(hash, Convert.ToBase64String(salt)); _repository.Register(user); var log = new AccessLog( "Register", DateTime.Now, "auto registro", "UserAuth", $"Nome usuario registrado: {command.Username}"); _log.Register(log); user.HidePassword(); return(new CommandResult(true, "Cadastro realizado. ", user)); }
public async Task <IActionResult> Register(UserForRegisterDto userForRegisterDto) { userForRegisterDto.Username = userForRegisterDto.Username.ToLower(); if (await _repo.IsUserExists(userForRegisterDto.Username)) { return(BadRequest("Username already exist.")); } User user = _mapper.Map <User>(userForRegisterDto); var createdUser = await _repo.Register(user, userForRegisterDto.Password); var userToReturn = _mapper.Map <UserForDetailedDto>(createdUser); return(CreatedAtRoute("GetUser", new { controller = "Users", id = createdUser.Id }, userToReturn)); }
public async Task <IActionResult> RegisterEmployer(EmployerDTO em) { if (!ModelState.IsValid) { return(BadRequest(new { message = "Fill all fields" })); } var employer = new Employer() { FirstName = em.FirstName, LastName = em.LastName, Email = em.Email, Role = "user", CompanyName = em.CompanyName }; var company = await _companyRepos.GetCompanyByName(em.CompanyName); if (company == null) { return(BadRequest(new { message = "Such company doesn't exist" })); } if (await _authRepos.UserExists(employer)) { return(BadRequest(new { message = "This user already exists" })); } employer.CompanyId = company.CompanyId; employer.CompanyName = company.Name; employer = await _authRepos.Register(employer, em.Password); if (employer == null) { return(BadRequest(new { message = "Failed to register" })); } var identity = await CreateEmployerIdentity(em.Email, em.Password); string token = TokenCreatingService.CreateToken(identity, out string identityName, Configuration); HttpContext.Session.SetString("Token", token); HttpContext.Session.SetInt32("Id", employer.EmployerId); HttpContext.Session.SetString("Name", employer.FirstName); HttpContext.Session.SetString("Company", employer.CompanyName); return(Ok(new { token = token, name = identityName })); }