public void GetEstatusNipAccesoAfiliacion(string claveCliente, string nip, string tipoOperacion)
        {
            ReqGetEstatusNipAccesoAfiliacion reqGENA = new ReqGetEstatusNipAccesoAfiliacion();
            reqGENA.medioIdentificacion = tipoOperacion.Equals(ClavesOperacion.CodigoClienteDesbloqueo) ? ClavesOperacion.CodigoCliente : tipoOperacion;

            bool error = true;
            string message = string.Empty;

            Santander.TipoClaveUsuario tipoClaveUsuario = TipoClaveUsuario.NoValido;
            if (Validaciones.ValidaClaveUsuario(ref claveCliente, ref tipoClaveUsuario))
            {
                error = false;
                reqGENA.valorMI = claveCliente;
#if OFFLINE
                        (Application.Current as App).SessionId = 1.ToString();
#endif
                Services.GetEstatusNipAccesoAfiliacion(
                      base.ServiceRequest,
                      (_) =>
                      {
                          error = true;
                          if (!_.ErrorInMakingRequest)
                          {
                              switch (_.Error.clave)
                              {
                                  case Errors.Generic.OK:
                                      error = false;
                                      Santander.DataAccess.ServiceRequest2 estatusNipAcceso = new Santander.DataAccess.ServiceRequest2();
                                      estatusNipAcceso.CriptoUtil();
                                      switch (estatusNipAcceso.Desencrit(_.Dto.estatusNipAcceso))
                                      {
                                          case Errors.Service.BLOQUEO_POR_USUARIO:
                                          case Errors.Service.BLOQUEO_POR_INTENTOS:
                                          case Errors.Service.BLOQUEO_POR_INACTIVIDAD:
                                          case Errors.Service.BLOQUEO_POR_CAMBIO_PERIODICO_DE_NIP:
                                          case Errors.Service.BLOQUEO_BW01_68:
                                              ValidarNipCanal(nip);
                                              break;
                                          default:
                                              this._dispatcher.BeginInvoke(() =>
                                              {
                                                  ProcesoError(new Global.ViewModelEventArgs() { ErrorInMakingRequest = false, Error = new Error() { clave = Errors.Login.CLIENTE_INEXISTENTE } });
                                              });
                                              break;
                                      }
                                      break;
                                  default:
                                      error = false;
                                      this._dispatcher.BeginInvoke(() =>
                                      {
                                          ProcesoError(new Global.ViewModelEventArgs() { ErrorInMakingRequest = false, Error = _.Error });
                                      });
                                      break;
                              }
                          }
                          else
                          {
                              error = false;
                              if (null != ProcesoError)
                              {
                                  base._dispatcher.BeginInvoke(() =>
                                  {
                                      ProcesoError(new Global.ViewModelEventArgs() { ErrorInMakingRequest = _.ErrorInMakingRequest });
                                  });
                              }
                          }
                      },
                      reqGENA);
            }
            else
            {
                switch (tipoClaveUsuario)
                {
                    case TipoClaveUsuario.NoValido:
                    case TipoClaveUsuario.CodigoCliente:
                    case TipoClaveUsuario.CuentaCheques:
                    case TipoClaveUsuario.Tarjeta:
                        message = TextosPantallas.tIdentificacionNoValida;
                        break;
                }
            }

            if (error)
            {
                if (ProcesoError != null)
                {
                    this._dispatcher.BeginInvoke(() =>
                    {
                        ProcesoError(new Global.ViewModelEventArgs() { ErrorInMakingRequest = false, Error = new Error() { message = message } });
                    });
                }
            }
        }
        public void GetEstatusNipAccesoAfiliacion(string claveCliente, string nip, string tipoOperacion)
        {
            ReqGetEstatusNipAccesoAfiliacion reqGENA = new ReqGetEstatusNipAccesoAfiliacion();
            reqGENA.medioIdentificacion = tipoOperacion.Equals(ClavesOperacion.CodigoClienteAfiliacion) ? ClavesOperacion.CodigoCliente : tipoOperacion;
            Santander.TipoClaveUsuario tipoClaveUsuario = TipoClaveUsuario.NoValido;
            Santander.TipoNip tipoNip = TipoNip.NoValido;

            bool error = true;
            string message = string.Empty;
            if (Validaciones.ValidaClaveUsuario(ref claveCliente, ref tipoClaveUsuario))
            {
                if (Validaciones.ValidaNip(nip, ref tipoNip))
                {
                    error = false;
                    reqGENA.valorMI = claveCliente;
#if OFFLINE
                              (Application.Current as App).SessionId = 1.ToString();
#endif
                    Services.GetEstatusNipAccesoAfiliacion(base.ServiceRequest, (_) =>
                    {
                        error = true;
                        if (!_.ErrorInMakingRequest)
                        {
                            switch (_.Error.clave)
                            {
                                case Errors.Generic.OK:
                                    error = false;
                                    Santander.DataAccess.ServiceRequest2 estatusNipAcceso = new Santander.DataAccess.ServiceRequest2();
                                    estatusNipAcceso.CriptoUtil();
                                    switch (estatusNipAcceso.Desencrit(_.Dto.estatusNipAcceso))
                                    {
                                        case Errors.Service.CLIENTE_INEXISTENTE:
                                            ReqValidarNipCanal reqVNC = new ReqValidarNipCanal();
                                            reqVNC.nipCanal = nip;
                                            Services.ValidarNipCanal(base.ServiceRequest, ResponseValidarNipCanal, reqVNC);
                                            break;
                                        default:
                                            this._dispatcher.BeginInvoke(() =>
                                            {
                                                ProcesoError(new Global.ViewModelEventArgs() { ErrorInMakingRequest = false, Error = new Error() { message = TextosFront.frontMensajeUsuarioAfiliado } });
                                            });
                                            break;
                                    }
                                    break;
                                default:
                                    error = false;
                                    this._dispatcher.BeginInvoke(() =>
                                    {
                                        ProcesoError(new Global.ViewModelEventArgs() { ErrorInMakingRequest = false, Error = _.Error });
                                    });
                                    break;
                            }
                        }

                        if (error)
                        {
                            error = false;
                            if (ProcesoError != null)
                            {
                                this._dispatcher.BeginInvoke(() =>
                                {
                                    ProcesoError(new Global.ViewModelEventArgs() { ErrorInMakingRequest = _.ErrorInMakingRequest, Error = _.Error });
                                });
                            }
                        }
                        return;
                    }, reqGENA);
                }
                else
                {
                    message = TextosPantallas.tNIPNoValido;
                }
            }
            else
            {
                switch (tipoClaveUsuario)
                {
                    case TipoClaveUsuario.NoValido:
                    case TipoClaveUsuario.CodigoCliente:
                    case TipoClaveUsuario.CuentaCheques:
                    case TipoClaveUsuario.Tarjeta:
                        message = TextosPantallas.tIdentificacionNoValida;
                        break;
                }
            }

            if (error)
            {
                if (ProcesoError != null)
                {
                    this._dispatcher.BeginInvoke(() =>
                    {
                        ProcesoError(new Global.ViewModelEventArgs() { ErrorInMakingRequest = false, Error = new Error() { message = message } });
                    });
                }
            }
        }