Exemplo n.º 1
0
        public IDataResult <User> Register(UserForRegisterDto userForRegisterDto, string password)
        {
            byte[] passwordHash, passwordSalt;
            HashingHelper.CreatePasswordHash(password, out passwordHash, out passwordSalt);
            var user = new AppUser
            {
                Email          = userForRegisterDto.Email,
                FirstName      = userForRegisterDto.FirstName,
                LastName       = userForRegisterDto.LastName,
                PasswordHash   = passwordHash,
                PasswordSalt   = passwordSalt,
                Status         = false,
                ActivationCode = Guid.NewGuid()
            };

            _userService.Add(user);
            var userResult     = _userService.GetByMail(user.Email) as AppUser;
            var customerResult = AddUserToCustomer(userResult);

            var operationClaims = _operationClaimService.GetClaims();
            var operationClaim  = operationClaims.Data.FirstOrDefault(x => x.Name == "customer");

            _userOperationClaimService.AddUserOperationClaim(userResult, operationClaim);
            userResult.CustomerId = customerResult.Data.Id;
            _userService.UpdateUserCustomer(userResult);
            SendActivationToken(user);
            return(new SuccessDataResult <User>(null, Message.UserRegistered));
        }