예제 #1
0
        public async Task <IActionResult> SolicitarReestablecerContrasenna(string correo)
        {
            var respuesta = new RespuestaApiDto();

            try
            {
                var usuarioDto = await _usuarioRepository.ObtenerUsuarioPorCorreo(correo);

                if (usuarioDto == null)
                {
                    respuesta.Codigo  = -1;
                    respuesta.Mensaje = "No se pudo solicitar reestablecer";
                }
                else
                {
                    await _usuarioRepository.ReenviarValidacionCorreo(usuarioDto.Id);

                    respuesta.Codigo  = 1;
                    respuesta.Mensaje = "se ha enviado correo";
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, $"fallo en Solicitar Reestablecer Contrasenna: {ex}");
                respuesta.Codigo  = 500;
                respuesta.Mensaje = "Excepción, consultar log.";
            }
            return(Ok(respuesta));
        }
예제 #2
0
        public async Task <IActionResult> UsuarioActual()
        {
            var respuesta = new RespuestaApiDto();

            try
            {
                var idUsuario = JwtHelper.ObtenerIdUsuario(User.Claims);
                if (idUsuario == null)
                {
                    respuesta.Codigo  = -1;
                    respuesta.Mensaje = "Usuario no esta logueado";
                }
                else
                {
                    respuesta.Codigo          = 1;
                    respuesta.Mensaje         = "Usuario logueado";
                    respuesta.ObjetoRespuesta = idUsuario;
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, $"fallo en Get usuario actual: {ex}");
                respuesta.Codigo  = 500;
                respuesta.Mensaje = "Excepción, consultar log.";
            }
            return(Ok(respuesta));
        }
예제 #3
0
        public async Task <IActionResult> SolicitarIngreso([FromBody] UsuarioSolicitudIngresoDto usuarioSolicitudIngresoDto)
        {
            var respuesta = new RespuestaApiDto();

            try
            {
                var usuarioValido = usuarioSolicitudIngresoDto.EsValido();
                if (!usuarioValido.Key)
                {
                    respuesta.Codigo  = -1;
                    respuesta.Mensaje = usuarioValido.Value;
                }
                else
                {
                    var usuarioEntity = await _usuarioRepository.ObtenerUsuarioPorCorreo(usuarioSolicitudIngresoDto.Correo);

                    if (usuarioEntity == null)
                    {
                        respuesta.Codigo  = -1;
                        respuesta.Mensaje = "usuario y/o contraseña equivocados";
                    }
                    else
                    {
                        var hashPass = Crypto.CrearHashSHA256(usuarioSolicitudIngresoDto.Contrasenna, usuarioEntity.SaltContrasenna);

                        if (usuarioEntity.Bloqueado == true)
                        {
                            respuesta.Codigo  = -2;
                            respuesta.Mensaje = "usuario bloqueado";
                        }
                        else if (usuarioEntity.CorreoValidado == false)
                        {
                            respuesta.Codigo  = -3;
                            respuesta.Mensaje = "usuario sin correo validado";
                        }
                        else if (!usuarioEntity.HashContrasenna.Equals(hashPass))
                        {
                            respuesta.Codigo  = -4;
                            respuesta.Mensaje = "usuario y/o contraseña equivocados";
                            var bloqueado = await _usuarioRepository.AumentarIntentoUsuario(usuarioEntity.Id);
                        }
                        else
                        {
                            respuesta.Codigo          = 1;
                            respuesta.Mensaje         = "usuario valido";
                            respuesta.ObjetoRespuesta = JwtHelper.GenerarToken(usuarioEntity);
                        }
                        //respuesta.ObjetoRespuesta = usuarioEntity.ToDto();
                    }
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, $"fallo en Post Solicitar Ingreso: {ex}");
                respuesta.Codigo  = 500;
                respuesta.Mensaje = "Excepción, consultar log.";
            }
            return(Ok(respuesta));
        }
예제 #4
0
        public async Task <IActionResult> Registrar([FromBody] UsuarioRegistroDto usuarioRegistroDto)
        {
            var respuesta = new RespuestaApiDto();

            try
            {
                var usuarioValido = usuarioRegistroDto.EsValido();
                if (!usuarioValido.Key)
                {
                    respuesta.Codigo  = -1;
                    respuesta.Mensaje = usuarioValido.Value;
                }
                else
                {
                    var existeCorreo = await _usuarioRepository.ExisteCorreo(usuarioRegistroDto.Correo);

                    if (existeCorreo)
                    {
                        respuesta.Codigo  = -1;
                        respuesta.Mensaje = "Correo existe en base de datos";
                    }
                    else
                    {
                        respuesta.Codigo  = 1;
                        respuesta.Mensaje = "Registro exitoso";
                        var usuarioDto = await _usuarioRepository.AgregarUsuario(usuarioRegistroDto);

                        respuesta.ObjetoRespuesta = usuarioDto;
                    }
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, $"fallo en Post Registrar Usuario: {ex}");
                respuesta.Codigo  = 500;
                respuesta.Mensaje = "Excepción, consultar log.";
            }
            return(Ok(respuesta));
        }
예제 #5
0
        public async Task <IActionResult> RegistrarCorreo(UsuarioRegistroCorreoDto usuarioRegistroCorreoDto)
        {
            var respuesta = new RespuestaApiDto();

            try
            {
                var usuarioEntity = await _usuarioRepository.ObtenerUsuarioPorIdValidacionCorreo(usuarioRegistroCorreoDto.IdValidacion);

                if (usuarioEntity == null)
                {
                    return(BadRequest());
                }

                if (usuarioEntity.FechaEnvioValidacion.AddDays(AppVariables.DiasPermitidosParaValidarCorreo).Subtract(DateTime.Now).TotalSeconds < 0)
                {
                    await _usuarioRepository.ReenviarValidacionCorreo(usuarioEntity.Id);

                    respuesta.Codigo  = -1;
                    respuesta.Mensaje = "Reenvio de Correo Validación";
                }
                else
                {
                    await _usuarioRepository.RegistrarCorreo(usuarioRegistroCorreoDto);

                    respuesta.Codigo          = 1;
                    respuesta.Mensaje         = "Registro exitoso";
                    respuesta.ObjetoRespuesta = usuarioEntity.ToDto();
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, $"fallo en Post Registrar Correo: {ex}");
                respuesta.Codigo  = 500;
                respuesta.Mensaje = "Excepción, consultar log.";
            }
            return(Ok(respuesta));
        }