Esempio n. 1
0
        public async Task <RecuperarContraseniaRespuestaDto> RecuperarPass(RecuperarContraseniaPeticionDto peticion)
        {
            var operacion = await _usuarioServicio.RecuperarContrasenia(peticion);

            return(operacion.Resultado);
        }
Esempio n. 2
0
        public async Task <OperacionDto <RecuperarContraseniaRespuestaDto> > RecuperarContrasenia(RecuperarContraseniaPeticionDto peticion)
        {
            var validadModelo = ValidacionUtilitario.ValidarModelo <RecuperarContraseniaRespuestaDto>(peticion);

            if (!validadModelo.Completado)
            {
                return(validadModelo);
            }

            var entidad = await _usuarioRepositorio.BuscarPorUserName(peticion.UserName);

            if (entidad == null)
            {
                return(new OperacionDto <RecuperarContraseniaRespuestaDto>(CodigosOperacionDto.NoExiste, "Usuario no existe"));
            }

            var persona = await _personaRepositorio.ObtenerPorIdUsuario(entidad.IdUsuario);

            var nombreCompleto = default(string);

            if (persona != null)
            {
                nombreCompleto = $@"{persona.Nombre}, {persona.APaterno} {persona.AMaterno}";
            }

            var password = RandomChars.RandomString(10);

            password = Regex.Replace(password, @"[^a-zA-Z0-9]", m => "9");

            entidad.Password = Md5Utilitario.Cifrar(password, entidad.PasswordSalt);

            var html = File.ReadAllText(_appConfiguraciones.RutaTemplateRecuperarContrasenia);

            html = html.Replace("%%Nombre%%", nombreCompleto);
            html = html.Replace("%%Contrasenia%%", password);

            var asunto = "Nueva Contraseña";
            var cuerpo = html;

            var destinatarios = new List <string>();

            destinatarios.Add(persona.Correo);

            CorreoUtiliario.EnviarCorreo(asunto, destinatarios, cuerpo);

            await _usuarioRepositorio.EditarUsuario(entidad);

            return(new OperacionDto <RecuperarContraseniaRespuestaDto>(new RecuperarContraseniaRespuestaDto()
            {
                Mensaje = "Correo Enviado",
                Suceso = true
            }));
        }