private void InitViewModel(MovimientosViews item)
        {
            switch (item)
            {
                case MovimientosViews.transferenciasPropias:
                    this._nextViewModel = new CuentasPropiasViewModel(this.Dispatcher);
                    this._navigation = MovimientosViews.transferenciasPropias;
                    ((ViewModelBase)this._nextViewModel).IsTokenFinal = this._movimientosCuentasViewModel.IsTokenFinal;
                    ((ViewModelBase)this._nextViewModel).ViewModelLoaded += ViewModelLoaded;
                    ((ViewModelBase)this._nextViewModel).Load();
                    break;
                case MovimientosViews.transferencias3ros:
                    this._nextViewModel = new CuentasTercerosViewModel(this.Dispatcher);
                    this._navigation = MovimientosViews.transferencias3ros;
                    ((ViewModelBase)this._nextViewModel).IsTokenFinal = this._movimientosCuentasViewModel.IsTokenFinal;
                    ((ViewModelBase)this._nextViewModel).LimiteImporte = this._limiteImporte;
                    ((ViewModelBase)this._nextViewModel).LimiteAcumulado = this._limiteAcumulado;
                    ((ViewModelBase)this._nextViewModel).ViewModelLoaded += ViewModelLoaded;
                    ((ViewModelBase)this._nextViewModel).Load();
                    break;
                case MovimientosViews.transferenciasOtrosBancos:
                    this._nextViewModel = new CuentasOtrosBancosViewModel(this.Dispatcher);
                    this._navigation = MovimientosViews.transferenciasOtrosBancos;
                    ((ViewModelBase)this._nextViewModel).IsTokenFinal = this._movimientosCuentasViewModel.IsTokenFinal;
                    ((ViewModelBase)this._nextViewModel).LimiteImporte = this._limiteImporte;
                    ((ViewModelBase)this._nextViewModel).LimiteAcumulado = this._limiteAcumulado;
                    ((ViewModelBase)this._nextViewModel).ViewModelLoaded += ViewModelLoaded;
                    ((ViewModelBase)this._nextViewModel).Load();
                    break;
                case MovimientosViews.Pagos:
                    this._nextViewModel = new PagoServicioViewModel(this.Dispatcher);
                    this._navigation = MovimientosViews.Pagos;
                    ((ViewModelBase)this._nextViewModel).IsTokenFinal = this._movimientosCuentasViewModel.IsTokenFinal;
                    ((ViewModelBase)this._nextViewModel).LimiteImporte = this._limiteImporte;
                    ((ViewModelBase)this._nextViewModel).LimiteAcumulado = this._limiteAcumulado;
                    ((ViewModelBase)this._nextViewModel).ViewModelLoaded += ViewModelLoaded;
                    ((ViewModelBase)this._nextViewModel).Load();
                    break;

            }
        }
        private void ViewModelLoaded(Santander.Global.ViewModelEventArgs e)
        {
            bool error = true;
            if (!e.ErrorInMakingRequest)
            {
                if (e.Error.clave.Is(Errors.Generic.OK))
                {
                    error = false;
                    switch (this._navigation)
                    {
                        case MovimientosViews.transferenciasPropias:
                            this.NavigateTo(Views._CuentasPropiasView + "?cuenta=" + this._noCuenta);
                            break;
                        case MovimientosViews.transferencias3ros:
                            if ((this._nextViewModel as CuentasTercerosViewModel).TieneCuentasTerceros)
                            {
                                this.NavigateTo(Views._CuentasTercerosView + "?cuenta=" + this._noCuenta);
                            }
                            else
                            {
                                Progress.Hide();
                                MessageBox.Show(TextosFront.frontMensajeSinProductos);
                            }
                            break;
                        case MovimientosViews.transferenciasOtrosBancos:
                            if ((this._nextViewModel as CuentasOtrosBancosViewModel).TieneCuentasOtrosBancos)
                            {
                                this.NavigateTo(Views._CuentasOtrosBancosView + "?cuenta=" + this._noCuenta);
                            }
                            else
                            {
                                Progress.Hide();
                                MessageBox.Show(TextosFront.frontMensajeSinProductos);
                            }
                            break;
                        case MovimientosViews.Pagos:
                            this.NavigateTo(Views._PagoServicioView + "?cuenta=" + this._noCuenta);
                            break;

                    }
                    desactivaEventos();
                }
                else
                {
                    Progress.Hide();
                    switch (e.Error.clave)
                    {
                        case Errors.Generic.GBL_03:
                            this._movimientosCuentasViewModel.CerrarSesion();
                            this.NavigateTo(Views._PanoramaPublicoView);
                            this.App().SesionIniciada = false;
                            break;
                    }
                    MessageBox.Show(e.Error.message);
                }
            }
            else
            {
                Progress.Hide();
                MessageBox.Show(TextosFront.frontMensajeErrorConexion);
            }

            if (error)
            {
                this._navigation = MovimientosViews.MovimientosCuentasView;
            }
        }
 private void OnTransferenciasOtrosMenuItem_Click(object sender, EventArgs e)
 {
     if (this.App().fechaActual == null || string.IsNullOrEmpty(this.App().fechaActual.fecha))
     {
         MessageBox.Show(TextosFront.frontMensajeErrorConexion);
         return;
     }
     if (!showMessage(ClavesOperacion.TransferenciaOtrosBancos))
     {
         Progress.Show();
         this._navigation = MovimientosViews.transferenciasOtrosBancos;
         this._movimientosCuentasViewModel.ValidaAcceso(ClavesOperacion.TransferenciaOtrosBancos);
     }
 }
 private void OnPagosMenuItem_Click(object sender, EventArgs e)
 {
     if (!this.App().Cuentas)
     {
         Progress.Hide();
         MessageBox.Show(TextosFront.frontMensajeSinProductos);
         return;
     }
     else
     {
         if (!showMessage(ClavesOperacion.PagoServicio))
         {
             Progress.Show();
             this._navigation = MovimientosViews.Pagos;
             this._movimientosCuentasViewModel.ValidaAcceso(ClavesOperacion.PagoServicio);
         }
     }
 }
 private void OnTransferenciasPropiasMenuItem_Click(object sender, EventArgs e)
 {
     if (!this.App().Cuentas || this.App().TotalCuentas <= 1)
     {
         Progress.Hide();
         MessageBox.Show(TextosFront.frontMensajeSinProductos);
         return;
     }
     else
     {
         this._navigation = MovimientosViews.transferenciasPropias;
         InitViewModel(this._navigation);
     }
 }
 private void OnConsultaBitacora_Click(object sender, EventArgs e)
 {
     if ((Application.Current as App).fechaActual != null)
     {
         if (!showMessage(ClavesOperacion.ConsultaBitacora))
         {
             Progress.Show();
             this._navigation = MovimientosViews.ConsultaBitacoraView;
             this._movimientosCuentasViewModel.ValidaAcceso(ClavesOperacion.ConsultaBitacora);
         }
     }
     else
     {
         MessageBox.Show(TextosFront.frontMensajeErrorConexion);
     }
 }
        private void OnDetalleCuenta_Click(object sender, EventArgs e)
        {
#if OFFLINE
                  Progress.Show();
                  this._navigation = MovimientosViews.DetalleCuentaView;
                  this._movimientosCuentasViewModel.ValidaAcceso(ClavesOperacion.DetalleDeCuentaCheques);
#else
            if (!showMessage(ClavesOperacion.DetalleDeCuentaCheques))
            {
                Progress.Show();
                this._navigation = MovimientosViews.DetalleCuentaView;
                this._movimientosCuentasViewModel.ValidaAcceso(ClavesOperacion.DetalleDeCuentaCheques);
            }

#endif

        }
        void _movimientosCuentasViewModel_ValidaAccesoComplete(Model.Dto.DtoValidaAcceso e)
        {
            string operacion = e.operacion;


            this._movimientosCuentasViewModel.IsTokenInicial = Convert.ToBoolean(e.isToken);
            this._movimientosCuentasViewModel.IsTokenFinal = Convert.ToBoolean(e.isTokenFinal);

            this._limiteImporte = !string.IsNullOrEmpty(e.limiteImporte) ? Convert.ToDouble(e.limiteImporte) : 0;
            this._limiteAcumulado = !string.IsNullOrEmpty(e.limiteAcumulado) ? Convert.ToDouble(e.limiteAcumulado) : 0;

            if (!string.IsNullOrEmpty(operacion))
            {
                int cu = CasosDeUso.getCodigoCU(operacion);
                resul = CasosDeUso.getResultado((Application.Current as App).matrix, cu, (int)(Application.Current as App).EstatusToken, (int)(Application.Current as App).EstatusSoftToken);
                EstatusToken estado = (EstatusToken)Enum.Parse(typeof(EstatusToken), resul.estado, true);

                if (operacion.Equals(ClavesOperacion.DetalleDeCuentaCheques))
                {
                    if (this._movimientosCuentasViewModel.IsTokenInicial)
                    {
                        if (this._movimientosCuentasViewModel.EstatusTokenValido)
                        {
                            insertToken(resul, ClavesOperacion.DetalleDeCuentaCheques);
                        }
                        else
                            Redirect(estado);
                    }
                    else
                    {
                        if (this._movimientosCuentasViewModel.EstatusTokenValido)
                        {
                            NavigationService.Navigate(new Uri(String.Format(Application.Current.Resources["DetalleDeCuentaView"] as string + "?AppTitle={0}&Cuenta={1}&divisa={2}"
                              , _pageTitle, _noCuenta, _divisa), UriKind.Relative));
                            desactivaEventos();
                        }
                        else
                            Redirect(estado);
                    }
                }

                if (operacion.Equals(ClavesOperacion.ConsultaBitacora))
                {
                    if (this._movimientosCuentasViewModel.IsTokenInicial)
                    {
                        if (this._movimientosCuentasViewModel.EstatusTokenValido)
                        {
                            insertToken(resul);
                        }
                        else
                            Redirect(estado);

                    }
                    else
                    {
                        if (this._movimientosCuentasViewModel.EstatusTokenValido)
                        {
                            NavigationService.Navigate(new Uri(String.Format(Application.Current.Resources["ConsultaBitacoraOperacionesView"] as string + "?NoCuenta={0}&divisa={1}&isTokenFinal={2}"
                            , _noCuenta, _divisa, this._movimientosCuentasViewModel.IsTokenFinal), UriKind.Relative));
                            desactivaEventos();
                        }
                        else
                            Redirect(estado);
                    }
                }

                if (operacion.Equals(ClavesOperacion.TransferenciaCuentasPropias))
                {
                    if (this._limiteImporte <= this._limiteAcumulado)
                    {
                        MessageBox.Show(TextosFront.frontMensajeLimiteImporte1);
                    }
                    else
                    {
                        if (this._movimientosCuentasViewModel.IsTokenInicial)
                        {
                            if (this._movimientosCuentasViewModel.EstatusTokenValido)
                            {
                                insertToken(resul);
                            }
                            else
                                Redirect(estado);
                        }
                        else
                        {
                            if (this._movimientosCuentasViewModel.EstatusTokenValido)
                            {
                                InitViewModel(this._navigation);
                            }
                            else
                                Redirect(estado);
                        }
                    }
                }


                if (operacion.Equals(ClavesOperacion.TransferenciaCuentasTerceros))
                {
                    if (this._limiteImporte <= this._limiteAcumulado)
                    {
                        MessageBox.Show(TextosFront.frontMensajeLimiteImporte1);
                    }
                    else
                    {
                        if (this._movimientosCuentasViewModel.IsTokenInicial)
                        {
                            if (this._movimientosCuentasViewModel.EstatusTokenValido)
                            {
                                insertToken(resul);
                            }
                            else
                                Redirect(estado);
                        }
                        else
                        {
                            if (this._movimientosCuentasViewModel.EstatusTokenValido)
                            {
                                InitViewModel(this._navigation);
                            }
                            else
                                Redirect(estado);
                        }
                    }
                }

                if (operacion.Equals(ClavesOperacion.TransferenciaOtrosBancos))
                {
                    if (this._limiteImporte <= this._limiteAcumulado)
                    {
                        MessageBox.Show(TextosFront.frontMensajeLimiteImporte1);
                        Progress.Hide();
                    }
                    else
                    {
                        if (!this._movimientosCuentasViewModel.EstatusTokenValido)
                        {
                            Redirect(estado);
                            return;
                        }
                        else
                        {
                            if (this._movimientosCuentasViewModel.IsTokenInicial)
                            {
                                insertToken(resul);
                            }
                            else
                            {
                                InitViewModel(this._navigation);
                            }
                        }
                    }
                }

                if (operacion.Equals(ClavesOperacion.PagoServicio))
                {
                    if (this._movimientosCuentasViewModel.IsTokenInicial)
                    {
                        if (this._movimientosCuentasViewModel.EstatusTokenValido)
                        {
                            insertToken(resul);
                        }
                        else
                            Redirect(estado);
                    }
                    else
                    {
                        if (this._movimientosCuentasViewModel.EstatusTokenValido)
                        {
                            InitViewModel(this._navigation);
                        }
                        else
                            Redirect(estado);
                    }

                }

            }
            else
            {
                Progress.Hide();
                MessageBox.Show(TextosFront.frontMensajeErrorConexion);
                this._navigation = MovimientosViews.MovimientosCuentasView;
            }
        }
        void MovimientosCuentas_Loaded(object sender, RoutedEventArgs e)
        {
            if ((Application.Current as App).SesionIniciada)
            {
                NoCuenta.Text = _noCuenta.Mask();

                double temp;
                if (Double.TryParse(_saldo, out temp))
                {
                    SaldoCuenta.Text = String.Format(System.Globalization.CultureInfo.CurrentCulture, "{0:N} " + _divisa, System.Convert.ToDouble(_saldo));
                }
                else
                {
                    SaldoCuenta.Text = AppResources.tNoDisponible;
                    (ApplicationBar.MenuItems[0] as Microsoft.Phone.Shell.ApplicationBarMenuItem).IsEnabled = false;
                    (ApplicationBar.MenuItems[1] as Microsoft.Phone.Shell.ApplicationBarMenuItem).IsEnabled = false;
                    (ApplicationBar.MenuItems[2] as Microsoft.Phone.Shell.ApplicationBarMenuItem).IsEnabled = false;
                    (ApplicationBar.MenuItems[3] as Microsoft.Phone.Shell.ApplicationBarMenuItem).IsEnabled = false;
                }

                if (!(Convert.ToInt32((Application.Current as App).dtoLogin.numProductos.cuentasPesos) > 0))
                {
                    (ApplicationBar.MenuItems[0] as Microsoft.Phone.Shell.ApplicationBarMenuItem).IsEnabled = false;
                    (ApplicationBar.MenuItems[1] as Microsoft.Phone.Shell.ApplicationBarMenuItem).IsEnabled = false;
                    (ApplicationBar.MenuItems[2] as Microsoft.Phone.Shell.ApplicationBarMenuItem).IsEnabled = false;
                    (ApplicationBar.MenuItems[3] as Microsoft.Phone.Shell.ApplicationBarMenuItem).IsEnabled = false;
                }


                _movimientosCuentasViewModel.reqMovimientosCuentasViewModel(_noCuenta);
                _movimientosCuentasViewModel.movimientosCuentasEventHandler += new MovimientosCuentasViewModel.MovimientosCuentasRequestCompleted(_movimientosCuentasViewModel_movimientosCuentasEventHandler);
                this._movimientosCuentasViewModel.ValidaAccesoComplete += new Global.ViewModelServiceCallback<Model.Dto.DtoValidaAcceso>(_movimientosCuentasViewModel_ValidaAccesoComplete);
                this._movimientosCuentasViewModel.ValidaTokenComplete += new Global.ViewModelServiceCallback(_movimientosCuentasViewModel_ValidaTokenComplete);
                this._movimientosCuentasViewModel.ValidaAccesoError += new Global.ViewModelServiceCallback<Global.ViewModelEventArgs>(_vm_ProcesoError);
                this._movimientosCuentasViewModel.ValidaTokenError += new Global.ViewModelServiceCallback<Global.ViewModelEventArgs>(_vm_ProcesoError);


#if OFFLINE
                        MovimientosCuentasEventHandler();
#else
                Progress.Show();
#endif

            }
            this._navigation = MovimientosViews.MovimientosCuentasView;
        }