public async Task <ResonseWithTokenDTO> SignUp(SignUpViewModel viewModel) { try { //verify if exist user with this email var userExists = await _userRepository.GetByEmail(viewModel.Email); if (userExists != null) { return(new ResonseWithTokenDTO(401, viewModel.Email, "", "There is Already a registration for this email.", false)); } if (String.IsNullOrWhiteSpace(viewModel.Password) || viewModel.Password != viewModel.PasswordVerify) { throw new InvalidLoginException("Your password is different from the verification password."); } viewModel.Password = _cryptographyHelper.Encrypt(viewModel.Password.ToBase64()); viewModel.PasswordVerify = viewModel.Password; var user = _mapper.Map <User>(viewModel); user.Validate(); var userCreated = await _userRepository.Create(user); if (userCreated == null) { throw new ServiceException("Is was not possible to register this user"); } //generate JWT var response = _tokenService.GenerateToken(new TokenViewModel(userCreated)); var acessToken = response.Data; var userResponse = new TokenClaimsDTO() { Code = userCreated.Code, Email = userCreated.Email, Name = userCreated.Name }; return(new ResonseWithTokenDTO(200, new { userResponse }, acessToken, "User created with success!", true)); } catch (InvalidLoginException ex) { return(new ResonseWithTokenDTO(500, ex, ex.Message, "", false)); } catch (RepositoryException ex) { return(new ResonseWithTokenDTO(500, ex, "", "An error ocurred.", false)); } catch (ServiceException ex) { return(new ResonseWithTokenDTO(500, ex, "", "An error ocurred.", false)); } catch (Exception ex) { return(new ResonseWithTokenDTO(500, ex, "", "An error ocurred.", false)); } }
public ResponseDTO <TokenClaimsDTO> GetTokenClaims(HttpContext context, bool itemsIgnore = true) { //var claims = GetClaimsUser(context, itemsIgnore); TokenClaimsDTO tokenClaimsDTO = new TokenClaimsDTO(); //foreach(var claim in claims) //{ // switch(claim.Type.ToLower()) // { // case "code": // tokenClaimsDTO.Code = Convert.ToInt32(claim.Value); // break; // case "name": // tokenClaimsDTO.Name = claim.Value; // break; // case "emailaddress": // tokenClaimsDTO.Email = claim.Value; // break; // } //} return(new ResponseDTO <TokenClaimsDTO>(tokenClaimsDTO, "", true)); }