private void MainForm_Load(object sender, EventArgs e)
        {
            try
            {
                Hide();
                using (LoginForm frmLogin = new LoginForm())
                {
                    frmLogin.ShowDialog();
                }
                if (Sesion.Instancia().UsuarioLogueado != null)
                {
                    Show();
                    Abrir();

                    if (!DigitoVerificador.ChequearDVs())
                    {
                        MessageBox.Show(ObtenerLeyenda("msgPruebaDVMal"), "", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }

                    ChequearAlertasDeInsuficiencia();
                }
                else
                {
                    Application.Exit();
                }
            }
            catch (Exception ex)
            {
                Log.Grabar(ex);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// conseguirUsuarios se encarga de obtener todos los usuarios donde se ha registrado alguna actividad en algun momento.
        /// </summary>
        /// <returns></returns>
        public List <Usuario> conseguirUsuarios()
        {
            Sesion.Instancia().verificarPermiso("OP45");
            DALBitacora dalBitacora = new DALBitacora();

            return(dalBitacora.conseguirUsuarios());
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Eliminar se encarga de
        /// </summary>
        /// <param name="nutricionista"></param>
        /// <returns></returns>
        public bool eliminar(Nutricionista nutricionista)
        {
            verificarPermiso("OP039");

            try
            {
                if (Sesion.Instancia().UsuarioActual.Username != nutricionista.Usuario.Username)
                {
                    nutricionista.Eliminado = true;
                    nutricionista.Dvh       = calcularDVH(nutricionista);
                    dalNutricionista.eliminar(nutricionista);
                    new DVVH().actualizarDVV("Nutricionista");
                    bllUsuario.eliminarUsuario(nutricionista.Usuario);
                }
                else
                {
                    throw new Exception(NuSmartMessage.formatearMensaje("Nutricionista_messagebox_error_borrado_actual"));
                }

                return(true);
            }catch (Exception e)
            {
                bllBitacora.crearNuevaBitacora("Eliminacion de Nutricionista", "Error en la eliminacion de Nutricionista: " + e.Message, Criticidad.Alta);

                throw new Exception(NuSmartMessage.formatearMensaje(e.Message));
            }
        }
Ejemplo n.º 4
0
 /// <summary>
 /// Se encarga de llamar a la implementacion del metodo Actualizar de cada Observer. El metodo Actualizar debe
 /// implementar el recargado de idioma para todos los controles que posea.
 /// </summary>
 public void Notify()
 {
     foreach (BE.IObserver observer in Sesion.Instancia().Observers)
     {
         observer.Actualizar();
     }
 }
Ejemplo n.º 5
0
        /// <summary>
        /// Se encarga de actualizar la password al actual usuario.
        /// </summary>
        /// <param name="password"></param>
        /// <returns></returns>
        public int actualizarPassword(string password)
        {
            try
            {
                if (password.Length > 0)
                {
                    Sesion.Instancia().UsuarioActual.Password = new Seguridad().encriptar(password);
                    Console.WriteLine("Nueva contraseña encriptada: " + Sesion.Instancia().UsuarioActual.Password);
                    Sesion.Instancia().UsuarioActual.Dvh = calcularDVH(Sesion.Instancia().UsuarioActual);
                    dalUsuario.actualizarContraseña(Sesion.Instancia().UsuarioActual);
                    bllBitacora.crearNuevaBitacora("Cambio de Password", "Se cambio la password del usuario " + Sesion.Instancia().UsuarioActual.Username, Criticidad.Media);
                    return(new DVVH().actualizarDVV("Usuario"));
                }
                else
                {
                    throw new Exception();
                }
            }
            catch (Exception ex)
            {
                bllBitacora.crearNuevaBitacora("Cambio de Password", "Ocurrio un error en el cambio de Password " + ex.Message, Criticidad.Media);

                throw new Exception(NuSmartMessage.formatearMensaje("MiCuenta_messagebox_error_cambio_password"), ex);
            }
        }
        private void LstUsuariosActuales_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (lstUsuariosActuales.SelectedIndex == _ultimoUsuarioSeleccionado)
            {
                return;
            }

            if (_editando && !PreguntarPorLosCambios())
            {
                lstUsuariosActuales.SelectedIndex = _ultimoUsuarioSeleccionado;
                return;
            }

            ResetearDetalles(false);
            if (lstUsuariosActuales.SelectedItem == null)
            {
                btnEditar.Enabled   = false;
                btnEliminar.Enabled = false;
            }
            else
            {
                UsuarioBE usuario = (UsuarioBE)lstUsuariosActuales.SelectedItem;
                txtNombre.Text          = usuario.Nombre;
                cmbIdioma.SelectedIndex = cmbIdioma.FindStringExact(usuario.Idioma.ToString());
                txtNombreUsuario.Text   = usuario.NombreDeUsuario;
                TildarPermisosUsuario(usuario, trvPermisos.Nodes);

                // El usuario administrador (id 1) no puede editarse ni eliminarse
                // Tampoco puede editarse el usuario actual
                bool puedeEditarse = usuario.Id > 1 && usuario.Id != Sesion.Instancia().UsuarioLogueado.Id;
                btnEditar.Enabled   = puedeEditarse;
                btnEliminar.Enabled = puedeEditarse;
            }
            _ultimoUsuarioSeleccionado = lstUsuariosActuales.SelectedIndex;
        }
Ejemplo n.º 7
0
        public void ActualizarLeyendas()
        {
            IdiomaBE idioma = Sesion.Instancia().UsuarioLogueado.Idioma;

            _leyendas = idioma.Leyendas.Where(l => l.NombreForm == Name).ToList();
            AsignarLeyenda(this);
        }
Ejemplo n.º 8
0
 private void menu_cerrar_sesion_Click(object sender, EventArgs e)
 {
     new BLLBitacora().crearNuevaBitacora("Logout de Usuario", "Se detectó un logout", Criticidad.Baja);
     Sesion.Instancia().Eliminar();
     new Lenguaje().Show();
     sessionOut = true;
     this.Close();
 }
Ejemplo n.º 9
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="idiomaId"></param>
        /// <returns></returns>
        public void establecerIdioma(int idiomaId)
        {
            BLLLeyenda bllLeyenda = new BLLLeyenda();

            Idioma idioma = dalIdioma.conseguir(idiomaId);

            idioma.Leyendas = bllLeyenda.conseguirLeyendasParaIdioma(idioma.Id);
            Sesion.Instancia().IdiomaActual = idioma;
        }
Ejemplo n.º 10
0
 static void Main()
 {
     System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("es-ES");//en-US
     Application.EnableVisualStyles();
     Application.SetCompatibleTextRenderingDefault(false);
     //Inicializo el Singleton de la sesion
     Sesion.Instancia();
     new Lenguaje().Show();
     Application.Run();
 }
Ejemplo n.º 11
0
 public void verificarPermiso(string operacion)
 {
     try
     {
         Sesion.Instancia().verificarPermiso(operacion);
     }catch (Exception ex)
     {
         bitacora.crearNuevaBitacora("Error de Permisos", ex.Message, Criticidad.Alta);
         throw ex;
     }
 }
Ejemplo n.º 12
0
 public void CerrarSesion()
 {
     try
     {
         Sesion.Instancia().CerrarSesion();
         Application.Restart();
     }
     catch (Exception ex)
     {
         Log.Grabar(ex);
     }
 }
Ejemplo n.º 13
0
        /// <summary>
        /// 1. Se busca el usuario en la base de datos
        /// 2. Se pasa a verificar si se encuentra bloqueado por exceso de intentos
        /// 3. Se valida que efectivamente el usuario conseguido de la base de datos y el ingresado, son iguales, a traves de la capa de seguridad
        /// 4. Se valida si tiene reintentos pero no este bloqueado, y se resetea a 0 en caso de que los tenga
        ///
        ///
        /// 1.1 Si no se encuentra el usuario, se catchea la excepcion y se muestra un error generico indicando que no se pudo loguear
        /// 2.1 Si se encuentra bloqueado, se muestra un mensaje indicando que el usuario se encuentra bloqueado
        /// 3.1 Si no se valida correctamente con la clase de seguridad, se informa con un mensaje de error generico indicando que no se pudo loguear

        /// </summary>
        /// <param name="usuario"></param>
        /// <returns></returns>
        public Usuario conseguirUsuarioLogIn(Usuario usuario)
        {
            Seguridad seguridad = new Seguridad();
            Usuario   usuarioConseguido;

            usuario.Password = seguridad.encriptar(usuario.Password);

            try
            {
                usuarioConseguido = dalUsuario.conseguir(usuario.Username);
            }
            catch (Exception exception)
            {
                Console.Write(exception);
                throw new Exception(NuSmartMessage.formatearMensaje("Login_messagebox_error_login"));
            }
            try
            {
                if (!(seguridad.esBloqueado(usuarioConseguido)))
                {
                    if (seguridad.validar(usuarioConseguido, usuario))
                    {
                        usuarioConseguido.Roles = bllRol.conseguir(usuarioConseguido);
                        Sesion.Instancia().UsuarioActual = usuarioConseguido;
                        bllBitacora.crearNuevaBitacora("Login de Usuario", "Se detecto un evento de ingreso", Criticidad.Media);
                    }
                    else
                    {
                        agregarIntento(usuarioConseguido);
                        bllBitacora.crearNuevaBitacora("Login de Usuario", "Se detecto un login incorrecto", Criticidad.Media);
                        throw new Exception(NuSmartMessage.formatearMensaje("Login_messagebox_error_login"));
                    }
                }
                else
                {
                    bllBitacora.crearNuevaBitacora("Login de Usuario", "Se detecto un login incorrecto", Criticidad.Alta);
                    throw new Exception(NuSmartMessage.formatearMensaje("Login_messagebox_usuario_bloqueado"));
                }

                if (usuarioConseguido.Intentos > 0)
                {
                    reiniciarIntentos(usuarioConseguido);
                }

                return(usuarioConseguido);
            }
            catch (Exception ex)
            {
                Console.Write(ex);
                bllBitacora.crearNuevaBitacora("Login de Usuario", "Ocurrio un error en el login de usuario " + ex.Message, Criticidad.Media);
                throw new Exception(NuSmartMessage.formatearMensaje(ex.Message));
            }
        }
Ejemplo n.º 14
0
        /// <summary>
        /// Se encarga de solicitar la eliminacion de un rol a la base de datos y de eliminar todos sus hijos.
        /// Tambien desasocia el rol previamente de todos los usuarios.
        /// </summary>
        /// <param name="rol"></param>
        public void eliminar(Rol rol)
        {
            verificarPermiso("AA099");

            if (Sesion.Instancia().validar(rol.Codigo))
            {
                throw new Exception(NuSmartMessage.formatearMensaje("GestionRoles_messagebox_eliminar_rol_asociado"));
            }
            dalRol.desasociarDeTodos(rol);
            dalRol.eliminarRecursivamente(rol.Id);
            bllBitacora.crearNuevaBitacora("Eliminacion de Rol", "Se elimino el rol " + rol.Codigo, Criticidad.Alta);
        }
Ejemplo n.º 15
0
        /// <summary>
        /// conseguirLeyendaMenu se encarga de conseguir y actualizar los textos de los controles relativos a los Menu en base
        /// al idioma cargado en la Sesion.
        /// </summary>
        /// <param name="item"></param>
        /// <returns></returns>
        public string conseguirLeyendaMenu(ToolStripMenuItem item)
        {
            Leyenda leyenda = Sesion.Instancia().IdiomaActual.Leyendas.Find(i => i.NombreControl == item.Name);

            if (leyenda != null)
            {
                return(leyenda.Texto);
            }
            else
            {
                return(item.Text);
            }
        }
Ejemplo n.º 16
0
 private void validarNavegación()
 {
     if (Sesion.Instancia().UsuarioActual == null)
     {
         //Estoy en la pantalla de inicio, tengo que ir al login
         new Login().Show();
     }
     else
     {
         bllIdioma.Notify();
     }
     this.Close();
 }
Ejemplo n.º 17
0
 private void MIsTurnos_Load(object sender, EventArgs e)
 {
     try
     {
         monthCalendar1.SetDate(DateTime.Now);
         MisTurnos_label_nutricionista.Text = bllNutricionista.conseguir(Sesion.Instancia().UsuarioActual.Id).ToString();
         listBox1.DataSource = bllTurnos.obtenerTurnos(monthCalendar1.SelectionRange.Start);
     }catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
         MessageBox.Show(NuSmartMessage.formatearMensaje("Error_messagebox_carga_formulario"));
     }
 }
Ejemplo n.º 18
0
 /// <summary>
 /// conseguirBitacorasConUsuario se encarga de obtener todas las actividades (Lista de entidad Bitacora)
 /// registradas para un usuario en particular
 /// </summary>
 /// <param name="usuario"></param>
 /// <param name="fechaInicio"></param>
 /// <param name="fechaFin"></param>
 /// <param name="criticidad"></param>
 /// <returns></returns>
 public List <Bitacora> conseguirBitacorasConUsuario(Usuario usuario, DateTime fechaInicio, DateTime fechaFin, string criticidad = null)
 {
     try
     {
         Sesion.Instancia().verificarPermiso("OP45");
         DALBitacora dalBitacora = new DALBitacora();
         return(dalBitacora.conseguirBitacorasConUsuario(usuario, fechaInicio, fechaFin, criticidad));
     }catch (Exception ex)
     {
         Console.WriteLine(ex.Message);
         throw new Exception(NuSmartMessage.formatearMensaje("Bitacora_messagebox_busqueda_error"));
     }
 }
Ejemplo n.º 19
0
        public List <Turno> obtenerTurnos(DateTime fecha)
        {
            verificarPermiso("OP044");

            try
            {
                Nutricionista nutricionista = new BLLNutricionista().conseguir(Sesion.Instancia().UsuarioActual.Id);
                return(dalTurno.obtenerTurnos(fecha, nutricionista));
            }catch (Exception ex)
            {
                crearNuevaBitacora("Busqueda De Turnos de Nutricionista", "Error en la busqueda de turnos del nutricionista: " + ex.Message, Criticidad.Alta);
                throw new Exception(NuSmartMessage.formatearMensaje("Error_messagebox_busqueda"));
            }
        }
Ejemplo n.º 20
0
 private void button1_Click(object sender, EventArgs e)
 {
     try
     {
         List <Leyenda> leyendas = (List <Leyenda>)dataGridView2.DataSource;
         bllLeyenda.guardar(leyendas, idiomaSeleccionado);
         recargarEtiquetas();
         Sesion.Instancia().IdiomaActual.Leyendas = bllLeyenda.conseguirLeyendasParaIdioma(Sesion.Instancia().IdiomaActual.Id);
         bllIdioma.Notify();
     }catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
Ejemplo n.º 21
0
 private void MiCuenta_Load(object sender, EventArgs e)
 {
     try {
         Nutricionista nutricionista = bllNutricionista.conseguir(Sesion.Instancia().UsuarioActual.Id);
         nutricionista.Usuario      = Sesion.Instancia().UsuarioActual;
         micuenta_txt_usuario.Text  = nutricionista.Usuario.Username;
         micuenta_txt_apellido.Text = nutricionista.Apellido;
         micuenta_txt_nombre.Text   = nutricionista.Nombre;
     }catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
         this.Close();
     }
 }
Ejemplo n.º 22
0
 private void button3_Click(object sender, EventArgs e)
 {
     try
     {
         bllLeyenda.eliminarLeyenda(leyendaSeleccionada);
         recargarEtiquetas();
         bllIdioma.Notify();
         Sesion.Instancia().IdiomaActual.Leyendas = bllLeyenda.conseguirLeyendasParaIdioma(Sesion.Instancia().IdiomaActual.Id);
         bllIdioma.Notify();
     }catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
        private void PersonalizacionForm_Load(object sender, EventArgs e)
        {
            Abrir();

            try
            {
                cmbIdioma.Items.AddRange(Idioma.ListarTodos().ToArray());
                cmbIdioma.SelectedIndex = cmbIdioma.FindStringExact(Sesion.Instancia().UsuarioLogueado.Idioma.ToString());
            }
            catch
            {
                MostrarError();
            }
        }
Ejemplo n.º 24
0
 private void button4_Click(object sender, EventArgs e)
 {
     try
     {
         leyendaSeleccionada.NombreControl = GestionEtiqueta_textbox_nombre_control.Text;
         leyendaSeleccionada.Texto         = GestionEtiqueta_textbox_texto_leyenda.Text;
         bllLeyenda.modificarLeyenda(leyendaSeleccionada);
         recargarEtiquetas();
         Sesion.Instancia().IdiomaActual.Leyendas = bllLeyenda.conseguirLeyendasParaIdioma(Sesion.Instancia().IdiomaActual.Id);
         bllIdioma.Notify();
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
Ejemplo n.º 25
0
        /// <summary>
        /// conseguirLeyenda se encarga de retornar el texto de la leyenda traducida en base al idioma cargado actual en la Sesion.
        /// Si no se tiene una leyenda para ese control, se deja el atributo Text del control como se encuentra por default.
        /// </summary>
        /// <param name="control"></param>
        public void conseguirLeyenda(Control control)
        {
            Leyenda leyenda = Sesion.Instancia().IdiomaActual.Leyendas.Find(i => i.NombreControl == control.Name);

            if (leyenda != null)
            {
                control.Text = leyenda.Texto;
                if (control.HasChildren)
                {
                    foreach (Control controlHijo in control.Controls)
                    {
                        conseguirLeyenda(controlHijo);
                    }
                }
            }
        }
Ejemplo n.º 26
0
        private void Contenedor_Load(object sender, EventArgs e)
        {
            //TODO: Validar el Rol del usuario para validar qué opciones se muestran
            reloadMainMenu(menuStrip1);
            Contenedor_menu_gestion_bitacora.Enabled       = Sesion.Instancia().validar("OP45");
            Contenedor_menu_backup.Enabled                 = Sesion.Instancia().validar("GE121");
            Contenedor_menu_gestion_pacientes.Enabled      = Sesion.Instancia().validar("GE100");
            Contenedor_menu_gestion_alimentos.Enabled      = Sesion.Instancia().validar("GE102");
            Contenedor_menu_gestion_ejercicios.Enabled     = Sesion.Instancia().validar("GE102");
            Contenedor_menu_gestion_nutricionistas.Enabled = Sesion.Instancia().validar("AA099");
            Contenedor_menu_roles.Enabled          = Sesion.Instancia().validar("AA099");
            Contenedor_menu_gestion_turnos.Enabled = Sesion.Instancia().validar("GE101");
            //Contenedor_menu_gestion_bitacora.Enabled = Sesion.Instancia().validar("AA099");
            Contenedor_menu_gestion_idioma.Enabled    = Sesion.Instancia().validar("OP83");
            Contenedor_menu_gestion_etiquetas.Enabled = Sesion.Instancia().validar("OP84");

            ocultarItems();
        }
Ejemplo n.º 27
0
 private void button2_Click(object sender, EventArgs e)
 {
     try {
         bllRol.asociarAUsuario(rolSeleccionado, usuarioSeleccionado);
         List <Rol> roles = bllRol.conseguir(usuarioSeleccionado);
         usuarioSeleccionado.Roles = roles;
         popularTreeView(treeView2, bllRol.conseguir(usuarioSeleccionado));
         limpiarSelecciones();
         if (Sesion.Instancia().UsuarioActual.Username == usuarioSeleccionado.Username)
         {
             MessageBox.Show(NuSmartMessage.formatearMensaje("GestionRoles_messagebox_logout_aplicar_permiso_usuario_actual"));
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
Ejemplo n.º 28
0
 private void Bitacora_Load(object sender, EventArgs e)
 {
     try
     {
         Sesion.Instancia().verificarPermiso("OP45");
         bllBitacora = new BLLBitacora();
         dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
         dataGridView1.SelectionMode       = DataGridViewSelectionMode.FullRowSelect;
         dataGridView1.MultiSelect         = false;
         dataGridView1.ReadOnly            = true;
         usuariosConBitacoras = bllBitacora.conseguirUsuarios();
         mostrarUsuariosConBitacoras();
     }
     catch (Exception ex)
     {
         MessageBox.Show(NuSmartMessage.formatearMensaje("Error_messagebox_carga_formulario"));
     }
 }
Ejemplo n.º 29
0
 /// <summary>
 /// Valida que no se pueda desasociar un usuario a si mismo roles.
 /// A su vez, busca recursivamente para validar si el rol que se quiere desasociar se encuentra en la lista de roles del usuario.
 /// </summary>
 /// <param name="rolBuscado"></param>
 /// <param name="usuario"></param>
 /// <returns></returns>
 public bool esPosibleDesociarRol(Rol rolBuscado, Usuario usuario)
 {
     if (usuario.Id == Sesion.Instancia().UsuarioActual.Id)
     {
         return(false);
     }
     else
     {
         foreach (Rol rolHijo in usuario.Roles)
         {
             if (rolHijo.Codigo == rolBuscado.Codigo)
             {
                 return(true);
             }
         }
     }
     return(false);
 }
Ejemplo n.º 30
0
        /// <summary>
        /// crearNuevaBitacora es el encargado de registrar una nueva Bitacora u actividad en la base de datos a fin de tener un registro de actividad.
        /// </summary>
        /// <param name="actividad"></param>
        /// <param name="descripcion"></param>
        /// <param name="criticidad"></param>
        /// <returns></returns>
        public void crearNuevaBitacora(string actividad, string descripcion, Criticidad criticidad)
        {
            try
            {
                Bitacora bitacora = new Bitacora();
                bitacora.Actividad   = actividad;
                bitacora.Descripción = descripcion;
                bitacora.Fecha       = DateTime.Now;
                bitacora.Usuario     = Sesion.Instancia().UsuarioActual;

                bitacora.TipoCriticidad = criticidad.Value;
                DALBitacora dalBitacora = new DALBitacora();
                dalBitacora.guardarBitacora(bitacora);
            }catch (Exception ex)
            {
                //Si se falla en el guardado de Bitacora, no deberia ser un error que sea un Throw hacia las capas superiores.
                //Deberia continuar funcionando el programa.
                Console.WriteLine(ex.Message);
            }
        }