Exemplo n.º 1
0
 private async void ValidacionesBiometrico()
 {
     try
     {
         await Task.Factory.StartNew(() =>
         {
             var _mac_valida = new CATALOGO_EQUIPOS();
             var _nics       = VerificacionDispositivo.GetMacAddress();
             foreach (var item in _nics)
             {
                 _mac_valida = new cCatalogoEquipos().ValidarEquipoMAC(item.ips, item.mac);
                 if (_mac_valida != null)
                 {
                     GlobalVar.gIP          = _mac_valida.IP;
                     GlobalVar.gMAC_ADDRESS = _mac_valida.MAC_ADDRESS;
                     if (_mac_valida.BIOMETRIA == "S")
                     {
                         Application.Current.Dispatcher.Invoke((System.Action)(delegate
                         {
                             VisibleBotonBiometrico = Visibility.Visible;
                         }));
                     }
                     break;
                 }
             }
         });
     }
     catch (Exception ex)
     {
         MessageBox.Show("Error: " + ex.Message, "Error");
     }
 }
Exemplo n.º 2
0
        private async void autentificacion()
        {
            try
            {
                string MsjError = string.Empty;
                ErrorLogin = string.Empty;
                BandError  = false;
                ///TODO:Quitar despues de pruebas
                if (SelectedCentro == -1)
                {
                    ErrorLogin = res.ControlPenales.Login.LoginViewModel.seleccione_centro;
                    BandError  = true;
                    return;
                }

                //GlobalVariables.gPass = UBD; //User.Password =   //User.Password.ToUpper();
                //User.Username = "******";
                //User.Password = "******";

                if (string.IsNullOrEmpty(User.Username) ? false : string.IsNullOrEmpty(User.Password) && huella == false ? false : true)
                //if (!string.IsNullOrEmpty(User.Username) || User.Username == "SYS" || User.Username == "TONGOLELE")
                {
                    // if (User.Username == "SYSTEM" || User.Username == "SYS" || User.Username == "TONGOLELE")
                    //   User.Password = "******";
                    GlobalVariables.gUser = User.Username;
                    //GlobalVariables.gPass = User.Password;
                    //validar usuario
                    LoginLoading = Visibility.Visible;
                    USUARIO usr = null;

                    if (await Task.Factory.StartNew <bool>(() => { usr = new cUsuario().ObtenerUsuario(User.Username); return(usr == null); }))
                    {
                        ErrorLogin = res.ControlPenales.Login.LoginViewModel.usuario_contrasena_incorrecto;
                        BandError  = true;
                        return;
                    }


                    #region Valida Sesion
                    if (!await Task.Factory.StartNew <bool>(() => { return(ValidarSesion()); }))
                    {
                        ErrorLogin = "******";
                        BandError  = true;
                        TBPwd.Focus();
                        return;
                    }
                    #endregion


                    //OBTENEMOS usuario
                    if (User.Username.Equals(usr.ID_USUARIO.Trim()) && (huella == true ? true : !string.IsNullOrEmpty(usr.PASSWORD) ? cEncriptacion.IsEquals(User.Password.ToUpper(), usr.PASSWORD) : false))
                    {
                        huella = false;
                        if ((!string.IsNullOrEmpty(usr.ESTATUS) ? usr.ESTATUS : string.Empty) == "S")
                        {
                            var      hoy = Fechas.GetFechaDateServer;
                            TimeSpan ts;
                            if (User.Username == "SYSTEM")
                            {
                                ts = hoy.AddDays(100) - hoy;
                            }
                            else
                            {
                                ts = usr.VENCE_PASS.Value - hoy;
                            }
                            if (Math.Floor(ts.TotalDays) > 0)
                            {
                                Application.Current.MainWindow.Hide();
                                var _view = new ControlPenales.PrincipalView();

                                User.Nombre           = User.Username == "SYSTEM" ? "SYSTEM" : string.Format("{0} {1} {2}", !string.IsNullOrEmpty(usr.EMPLEADO.PERSONA.NOMBRE) ? usr.EMPLEADO.PERSONA.NOMBRE.Trim() : string.Empty, !string.IsNullOrEmpty(usr.EMPLEADO.PERSONA.PATERNO) ? usr.EMPLEADO.PERSONA.PATERNO.Trim() : string.Empty, !string.IsNullOrEmpty(usr.EMPLEADO.PERSONA.MATERNO) ? usr.EMPLEADO.PERSONA.MATERNO.Trim() : string.Empty);
                                User.Password         = usr.PASSWORD;
                                User.VigenciaPassword = usr.VENCE_PASS;
                                User.CentroNombre     = SelectCentro.DESCR;
                                var _viewModel = new PrincipalViewModel(User);
                                _view.DataContext = _viewModel;
                                //centro
                                GlobalVar.gCentro = GlobalVariables.gCentro = SelectedCentro.Value;

                                Application.Current.MainWindow.Close();

                                var metro = Application.Current.Windows[0] as MahApps.Metro.Controls.MetroWindow;

                                ((ContentControl)metro.FindName("contentControl")).Content     = new BandejaEntradaView();
                                ((ContentControl)metro.FindName("contentControl")).DataContext = new BandejaEntradaViewModel();

                                //Validar permisos del equipo
                                Splasher.Splash = new ControlPenales.Login.SplashScreen();
                                Splasher.ShowSplash();

                                var _error_validacion        = true;
                                CATALOGO_EQUIPOS _mac_valida = null;


                                MessageListener.Instance.ReceiveMessage(res.General.verificando_crendenciales);

                                ///Eliminar cuando se implemente la verificacion de equipo
                                //await TaskEx.Delay(1500);
                                ///Eliminar cuando se implemente la verificacion de equipo

                                //esteban
                                //if(!string.IsNullOrEmpty(GlobalVar.gIP) && !string.IsNullOrEmpty(GlobalVar.gMAC_ADDRESS))
                                //{
                                //    _error_validacion = false;
                                //}
                                #region comentado
                                await Task.Factory.StartNew(() =>
                                {
                                    var _nics = VerificacionDispositivo.GetMacAddress();
                                    foreach (var item in _nics)
                                    {
                                        //borrar
                                        foreach (var item2 in item.ips)
                                        {
                                            Trace.WriteLine("\n>IP:" + item2 + " ,MAC:" + item.mac);
                                        }
                                        //hasta aqui
                                        _mac_valida = new cCatalogoEquipos().ValidarEquipoMAC(item.ips, item.mac);
                                        if (_mac_valida != null)
                                        {
                                            GlobalVar.gIP          = _mac_valida.IP;
                                            GlobalVar.gMAC_ADDRESS = _mac_valida.MAC_ADDRESS;
                                            _error_validacion      = false;
                                            break;
                                        }
                                    }
                                });

                                #endregion
                                //hasta aqui
                                if (Parametro.VERIFICA_HD_SERIAL && _mac_valida != null)
                                {
                                    _error_validacion = true;
                                    MessageListener.Instance.ReceiveMessage(res.General.revisando_disco_duro);
                                    await Task.Factory.StartNew(() =>
                                    {
                                        var hds = VerificacionDispositivo.GETHDSerial();
                                        foreach (var item in hds)
                                        {
                                            if (new cCatalogoEquipos().ValidarHD(item.SerialNo, _mac_valida.IP, _mac_valida.MAC_ADDRESS))
                                            {
                                                _error_validacion = false;
                                                break;
                                            }
                                            else
                                            {
                                                MsjError = "Error al validar HD";
                                            }
                                        }
                                    });
                                }

                                //Validar si tiene permisos para entrar al centro
                                await Task.Factory.StartNew(() =>
                                {
                                    var procesos = new cProcesoUsuario().ObtenerTodos(GlobalVariables.gUser, null, SelectCentro.ID_CENTRO).FirstOrDefault();
                                    if (procesos == null)
                                    {
                                        Trace.WriteLine("no pudo validar procesos");
                                        _error_validacion = true;
                                    }
                                });

                                MessageListener.Instance.ReceiveMessage(res.General.esperando_validacion);
                                await TaskEx.Delay(1500);

                                //if (!_error_validacion)
                                //_error_validacion = false;
                                if (_error_validacion == false)
                                {
                                    Splasher.CloseSplash();
                                    CrearSesion();
                                    _view.Show();
                                }
                                else
                                {
                                    MessageListener.Instance.ReceiveMessage("ACCESO DENEGADO");
                                    await TaskEx.Delay(7500);

                                    Splasher.CloseSplash();
                                    Application.Current.Shutdown();
                                }
                                ///Eliminar cuando se implemente la verificacion de equipo
                                //Splasher.CloseSplash();
                                //_view.Show();
                                ///Eliminar cuando se implemente la verificacion de equipo
                            }
                            else
                            {
                                ErrorLogin = res.ControlPenales.Login.LoginViewModel.password_caducado;
                                BandError  = true;
                                await TaskEx.Delay(500);

                                TBPwd.Focus();
                            }
                        }
                        else
                        {
                            ErrorLogin = res.ControlPenales.Login.LoginViewModel.usuario_inactivo;
                            BandError  = true;
                            await TaskEx.Delay(500);

                            TBPwd.Focus();
                        }
                    }
                    else
                    {
                        ErrorLogin = res.ControlPenales.Login.LoginViewModel.usuario_contrasena_incorrecto;
                        BandError  = true;
                        await TaskEx.Delay(500);

                        TBPwd.Focus();
                    }
                }
                else
                {
                    ErrorLogin = res.ControlPenales.Login.LoginViewModel.usuario_contrasena_incorrecto;
                    BandError  = true;
                    await TaskEx.Delay(500);

                    TBPwd.Focus();
                }
            }
            catch (Exception ex)
            {
                var trace = new System.Diagnostics.StackTrace(ex, true);
                Trace.WriteLine("\n>>>[Ubicación del Problema]");
                Trace.WriteLine("Clase: " + trace.GetFrame((trace.FrameCount - 1)).GetMethod().ReflectedType.FullName);
                Trace.WriteLine("Metodo: " + trace.GetFrame((trace.FrameCount - 1)).GetMethod().Name);
                Trace.WriteLine("Linea: " + trace.GetFrame((trace.FrameCount - 1)).GetFileLineNumber());
                Trace.WriteLine("Columna: " + trace.GetFrame((trace.FrameCount - 1)).GetFileColumnNumber());
                Trace.WriteLine(ex.Message + " " + (ex.InnerException != null ? ex.InnerException.InnerException.Message : ""));
                StaticSourcesViewModel.ShowMessageError(res.General.algo_paso, res.ControlPenales.Login.LoginViewModel.error_login, ex);
            }
        }