public async Task <ActionResult <UsuarioDto> > Registrar(RegistrarDto registrarDto)
        {
            var usuario = new Usuario
            {
                Email    = registrarDto.Email,
                UserName = registrarDto.Username,
                Nombre   = registrarDto.Nombre,
                Apellido = registrarDto.Apellido
            };

            var resultado = await _userManager.CreateAsync(usuario, registrarDto.Password);

            if (!resultado.Succeeded)
            {
                return(BadRequest(new CodeErrorResponse(400)));
            }

            return(new UsuarioDto
            {
                Nombre = usuario.Nombre,
                Apellido = usuario.Apellido,
                Token = _tokenService.CreateToken(usuario),
                Email = usuario.Email,
                Username = usuario.UserName
            });
        }
Ejemplo n.º 2
0
        public async Task <UserDto> Registrar([FromBody] RegistrarDto registrarDto)
        {
            //var usuarioExiste = _userManager.FindByEmailAsync(registrarDto.Email);

            //if (usuarioExiste == null)
            //{
            //    return null;
            //}

            var cadastarUsuario = new AppUser
            {
                DisplayName = registrarDto.DisplayName,
                Email       = registrarDto.Email,
                UserName    = registrarDto.Email
            };

            var resultado = await _userManager.CreateAsync(cadastarUsuario, registrarDto.Senha);

            if (!resultado.Succeeded)
            {
                return(null);
            }

            return(new UserDto
            {
                DisplayName = cadastarUsuario.DisplayName,
                Email = cadastarUsuario.Email,
                Token = "Token teste"
            });
        }
        public async Task <ActionResult <UsuarioDto> > Actualizar(string id, RegistrarDto registrarDto)
        {
            var usuario = await _userManager.FindByIdAsync(id);

            if (usuario == null)
            {
                return(NotFound(new CodeErrorResponse(404, "El usuario no existe")));
            }

            usuario.Nombre   = registrarDto.Nombre;
            usuario.Apellido = registrarDto.Apellido;
            usuario.Imagen   = registrarDto.Imagen;

            if (!string.IsNullOrEmpty(registrarDto.Password))
            {
                usuario.PasswordHash = _passwordHasher.HashPassword(usuario, registrarDto.Password); //Para cifrar la contraseña que es enviada
            }

            var resultado = await _userManager.UpdateAsync(usuario);

            if (resultado.Succeeded)
            {
                var roles = await _userManager.GetRolesAsync(usuario);

                return(new UsuarioDto
                {
                    Id = usuario.Id,
                    Nombre = usuario.Nombre,
                    Apellido = usuario.Apellido,
                    Email = usuario.Email,
                    Username = usuario.Email,
                    Imagen = usuario.Imagen,
                    Token = _tokenService.createToken(usuario, roles),
                    Admin = roles.Contains("ADMIN") ? true : false
                });
            }
            else
            {
                return(BadRequest(new CodeErrorResponse(400, "No se pudo actualizar el usuario")));
            }
        }