Exemplo n.º 1
0
        public async Task <LoggedDto> EndRegister(EndRegisterDto entity, string uuid)
        {
            var token = ValidateRegistrationToken(entity.RegistrationToken);

            if (await _userService.IsIssetAsync(token.Id))
            {
                throw new ClientException("r-token-already-used");
            }
            else if (_userService.IsIssetByLogin(entity.Login))
            {
                throw new ClientException("r-login-alrd-reg");
            }
            else if (_userService.IsIssetByEmail(token.Claims.First(x => x.Type == "email").Value))
            {
                throw new ClientException("r-email-alrd-reg");
            }

            var user = new User
            {
                Id           = token.Id,
                Login        = entity.Login,
                Email        = token.Claims.First(x => x.Type == "email").Value,
                Name         = entity.Name,
                Surname      = entity.Surname,
                Lastname     = entity.Lastname,
                PhotoId      = "default-user-photo",
                Birthday     = entity.Birthday.Value,
                RoleId       = int.Parse(token.Claims.First(x => x.Type == "role").Value),
                PasswordHash = PasswordHandler.CreatePasswordHash(entity.Password)
            };

            var noPermissions = new List <Permission>();

            if (token.Claims.First(x => x.Type == "noPermissions").Value.Length > 0)
            {
                foreach (var item in token.Claims.First(x => x.Type == "noPermissions").Value.Split(' '))
                {
                    noPermissions.Add(new Permission {
                        Id = int.Parse(item)
                    });
                }
            }
            var usr = await _userService.AddAsync(user, noPermissions);

            usr.Role = await _roleService.GetAsync(usr.RoleId);

            return(await _loginService.Login(usr, uuid));
        }
Exemplo n.º 2
0
 public async Task <ResultDto> End([FromBody, MyValidation] EndRegisterDto entity, [BindNever] string uuid)
 {
     return(ResultDto.Create(await _registrationService.EndRegister(entity, uuid)));
 }