private Cliente VerificarPassword(string email, string password)
        {
            Cliente cliente;

            try
            {
                cliente = _unitOfWork.Cliente.GetClienteByEmail(email);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                return(null);
            }
            if (cliente != null)
            {
                Password storedPassword = _unitOfWork.Cliente.GetPasswordByClienteId(cliente.Id);
                string   cleanPassword  = Encriptador.Decrypt(storedPassword.Hash, passPhrase);
                Console.WriteLine("password desencrip  " + cleanPassword);
                if (cleanPassword.Equals(password))
                {
                    return(cliente);
                }
            }
            return(null);
        }
        public IActionResult Post([FromBody] ClienteDomicilio data)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }
            data.Cliente.FechaRegistro = DateTime.Now;
            int fk = _unitOfWork.Cliente.Insert(data.Cliente);

            Console.WriteLine(fk);
            if (fk > 0)
            {
                Password password = new Password();
                password.Hash      = Encriptador.Encrypt(data.password, passPhrase);
                password.ClienteId = fk;
                _unitOfWork.Password.Insert(password);
            }
            data.Domicilio.ClienteId = fk;

            if (data.Domicilio.ClienteId != 0)
            {
                return(Ok(_unitOfWork.Domicilio.Insert(data.Domicilio)));
            }
            //var nuevoRegistro = _unitOfWork.Cliente.InsertClienteDomicilio(data.Cliente, data.Domicilio);
            return(BadRequest());
        }
        public IActionResult Put([FromBody] cambiarPassword cambiarPassword)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest("Error en el envio"));
            }
            // Validar password
            if (cambiarPassword.nuevoPassword.Length < 7)
            {
                return(BadRequest("Debes otorgar un pasword valido"));
            }
            // Tomar Registro en tabla reset pasword.
            var registroUID = _unitOfWork.ResetPassword.GetById(cambiarPassword.uid);

            // validar Guid
            if (!validarUid(cambiarPassword.uid, registroUID.ClienteId))
            {
                return(BadRequest("Utiliza el link enviado a tu correo"));
            }
            // Tomar password del cliente correspondiente.
            var passwordAnterior = _unitOfWork.Cliente.GetPasswordByClienteId(registroUID.ClienteId);

            // Objeto tipo Password con nuevo password
            passwordAnterior.Hash = Encriptador.Encrypt(cambiarPassword.nuevoPassword, passPhrase);
            // Realiza update
            if (_unitOfWork.Password.Update(passwordAnterior))
            {
                return(Ok(_unitOfWork.ResetPassword.Delete(registroUID)));
                // return Ok(true);
            }
            return(BadRequest("Ha ocurrido un error, intentalo nuevamente en unos minutos"));
        }