protected void btnGuardar_Click(object sender, EventArgs e)
        {
            Dominio.Entidades.UsuarioImpresora usuImp     = new Dominio.Entidades.UsuarioImpresora();
            IUsuarioImpresoraDominio           usuDominio = IoC.GetObjectDominio <IUsuarioImpresoraDominio>();

            usuImp.UsuarioID     = usuario.UsuarioID;
            usuImp.IPImpresoraCB = txtDireccionIP.Text.Trim();
            usuImp.IpBascula     = txtDireccionIPBalanza.Text.Trim();
            usuDominio.Guardar(usuImp);
            Session["ImpresoraUsuario"] = usuImp.IPImpresoraCB;
        }
        private void CargarDatos()
        {
            Dominio.Entidades.UsuarioImpresora usuImp     = new Dominio.Entidades.UsuarioImpresora();
            IUsuarioImpresoraDominio           usuDominio = IoC.GetObjectDominio <IUsuarioImpresoraDominio>();

            usuImp = usuDominio.GetOne(usuario.UsuarioID);

            if (usuImp != null)
            {
                txtDireccionIP.Text        = usuImp.IPImpresoraCB;
                txtDireccionIPBalanza.Text = usuImp.IpBascula;
            }
        }
Ejemplo n.º 3
0
        private void btnLogin_Click(object sender, System.EventArgs e)
        {
            try
            {
                if (!Page.IsValid)
                {
                    return;
                }

                IUsuarios usuario = UsuariosFactory.Identificar(txtUser.Text, txtPass.Text);

                bool usuarioValido = true;

                if (usuario == null)
                {
                    usuarioValido = false;
                }
                else if (usuario.UsuarioID == 0)
                {
                    usuarioValido = false;
                }

                if (!usuarioValido)
                {
                    string mensaje = string.Empty;
                    // Se van guardando los intentos fallidos.
                    this.txtIntentos.Text = (Convert.ToInt32(this.txtIntentos.Text) + 1).ToString();
                    // Obtenemos el parámetro de cantidad de intentos fallidos de ingreso al sistema.
                    IParametroUNegocio param = ParametroUNegocioFactory.GetParametroUNegocio();
                    param.UnidadNegocioID = 1;
                    param.Parametro       = NegociosSisPackInterface.SisPack.Parametro.CantidadIntentosFallidos;
                    param.Consultar();
                    // Verificamos si se llegó a la cantidad permitida.
                    if (Convert.ToInt32(this.txtIntentos.Text) >= Convert.ToInt32(param.ValorString))
                    {
                        // Obtenemos el usuario a través del login.
                        IUsuarios user = UsuariosFactory.GetUsuario();
                        user.Login = this.txtUser.Text;
                        user.ConsultarByLogin();
                        if (user.UsuarioID > 0)
                        {
                            if (user.Email != null && user.Email.Trim().Length > 0) //mando el mail con la nueva contraseña
                            {
                                string NuevaClave = new Random().Next().ToString();
                                user.Clave = NuevaClave;
                                user.Guardar();
                                user.ServidorCorreo       = System.Configuration.ConfigurationSettings.AppSettings["ServidorCorreo"].ToString();
                                user.PuertoServidorCorreo = System.Configuration.ConfigurationSettings.AppSettings["PuertoServidorCorreo"].ToString();
                                user.UsuarioCorreo        = System.Configuration.ConfigurationSettings.AppSettings["UsuarioCorreo"].ToString();
                                user.ClaveCorreo          = System.Configuration.ConfigurationSettings.AppSettings["ClaveCorreo"].ToString();

                                user.MandarMail(NuevaClave);
                                mensaje          = "Por un reintento de ingreso con clave incorrecta su contraseña fue modificada. Se le ha enviado su nueva contraseña a su correo electrónico";
                                txtIntentos.Text = "0";
                            }
                            else // si no tiene mail lo bloqueamos
                            {
                                // Modificamos el estado del usuario a suspendido para bloquearlo.
                                user.EstadoUsuarioPerfilID = (int)NegociosSisPackInterface.SisPack.EstadoUsuarioPerfil.BloqueadoPorReintentosFallidosIngresoAlSistema;
                                user.Guardar();
                            }
                        }
                    }

                    this.Session.Abandon();
                    if (mensaje == string.Empty)
                    {
                        mensaje = this.TraducirTexto("Errores.Invalidos.Login");
                    }
                    ((ErrorWeb)this.phErrores.Controls[0]).setMensaje(mensaje);
                    return;
                }

                // Verifico que la agencia asociada al usuario no este deshabilitada
                if (usuario.AgenciaID != 0)
                {
                    // Verificar el estado de la agencia
                    IAgencia agencia = AgenciaFactory.GetAgencia();
                    agencia.AgenciaID = Convert.ToInt32(usuario.AgenciaID);
                    agencia.Consultar();
                    if (agencia.EstadoAgencia == NegociosSisPackInterface.SisPack.EstadoAgencia.Deshabilitada)
                    {
                        this.Session.Abandon();
                        string mensaje = this.TraducirTexto("La agencia se encuentra deshabilitada");
                        ((ErrorWeb)this.phErrores.Controls[0]).setMensaje(mensaje);
                        return;
                    }

                    agencia.GetConfiguracionHoraDespacho();
                    Session["ConfiguracionHoraRedespacho"] = agencia.HoraConfiguracionDespacho;
                    Session["ConfiguracionDiasDespacho"]   = agencia.DiasConfiguracionDespacho;
                }

                Session["Usuario"] = usuario;
                Session["Pass"]    = this.txtPass.Text;
                FormsAuthentication.RedirectFromLoginPage(usuario.Login, false);
                Session["PopUpInicial"] = null;

                Session["ScreenWidth"]  = Utiles.Validaciones.obtieneEntero(this.txtAncho.Text) - 10;
                Session["ScreenHeight"] = Utiles.Validaciones.obtieneEntero(this.txtAlto.Text) - 50;

                // Obtenemos el parámetro "Tiempo de cambio automático de contraseñas".
                IParametroUNegocio paramFecha = ParametroUNegocioFactory.GetParametroUNegocio();
                paramFecha.UnidadNegocioID = 1;
                paramFecha.Parametro       = NegociosSisPackInterface.SisPack.Parametro.TiempoCambioAutomaticoContraseñas;
                paramFecha.Consultar();
                // Verificamos la fecha de modificación de clave del usuario logueado.
                if (usuario.FechaModificacionPassword.AddDays(Convert.ToDouble(paramFecha.ValorString)) <= System.DateTime.Today)
                {
                    // Si es menor al día actual modificamos variable de sesion.
                    Session["CambioClaveObligatorio"] = true;
                }
                else
                {
                    // Dejamos la variable de sesión vacía.
                    Session["CambioClaveObligatorio"] = null;
                }
                Dominio.Entidades.UsuarioImpresora usuImp     = new Dominio.Entidades.UsuarioImpresora();
                IUsuarioImpresoraDominio           usuDominio = IoC.GetObjectDominio <IUsuarioImpresoraDominio>();
                usuImp = usuDominio.GetOne(usuario.UsuarioID);

                if (usuImp != null)
                {
                    if (usuImp.IPImpresoraCB != string.Empty)
                    {
                        Session["ImpresoraUsuario"] = usuImp.IPImpresoraCB;
                    }
                    else
                    {
                        Session.Remove("ImpresoraUsuario");
                    }

                    if (usuImp.IpBascula != string.Empty)
                    {
                        Session["BasculaUsuario"] = usuImp.IpBascula;
                    }
                    else
                    {
                        Session.Remove("BasculaUsuario");
                    }
                }
                else
                {
                    Session.Remove("ImpresoraUsuario");
                    Session.Remove("BasculaUsuario");
                }
            }
            catch (Exception ex)
            {
                ((ErrorWeb)this.phErrores.Controls[0]).setMensaje(ex.Message);
            }
        }