[HttpPost("registrar")] // api/cuentas/registrar
        public async Task <ActionResult <RespuestaAutenticacion> > Registrar(CredencialesUsuario credencialesUsuario)
        {
            var usuario = new Usuario {
                UserName = credencialesUsuario.Email,
                Email    = credencialesUsuario.Email
            };
            var resultado = await userManager.CreateAsync(usuario, credencialesUsuario.Password);

            if (resultado.Succeeded)
            {
                await servicioLlaves.CrearLlave(usuario.Id, Entidades.TipoLlave.Gratuita);

                return(await ConstruirToken(credencialesUsuario, usuario.Id));
            }
            else
            {
                return(BadRequest(resultado.Errors));
            }
        }
示例#2
0
    public async Task <ActionResult> CrearLlave(CrearLlaveDTO crearLlaveDTO)
    {
        var usuarioId = ObtenerUsuarioId();

        if (crearLlaveDTO.TipoLlave == Entidades.TipoLlave.Gratuita)
        {
            var elUsuarioYaTieneUnaLlaveGratuita = await context.LlavesAPI
                                                   .AnyAsync(x => x.UsuarioId == usuarioId && x.TipoLlave == Entidades.TipoLlave.Gratuita);

            if (elUsuarioYaTieneUnaLlaveGratuita)
            {
                return(BadRequest("El usuario ya tiene una llave gratuita"));
            }
        }

        await servicioLlaves.CrearLlave(usuarioId, crearLlaveDTO.TipoLlave);

        return(NoContent());
    }