public List <UsuarioProfesor> GetAllProfesores()
        {
            DataAccessManager      accesoDatos = new DataAccessManager();
            List <UsuarioProfesor> listado     = new List <UsuarioProfesor>();
            UsuarioProfesor        usuarioProfesor;

            try
            {
                accesoDatos.setearConsulta("SELECT * FROM TB_USUARIOS_PROFESORES");
                accesoDatos.abrirConexion();
                accesoDatos.ejecutarConsulta();
                while (accesoDatos.Lector.Read())
                {
                    long usuarioId  = Converter.ToLong(accesoDatos.Lector["CD_USUARIO"]);
                    int  profesorId = Converter.ToInt(accesoDatos.Lector["CD_PROFESOR"]);

                    usuarioProfesor          = new UsuarioProfesor();
                    usuarioProfesor.Usuario  = GetById(usuarioId);
                    usuarioProfesor.Profesor = new ProfesorService().GetById(profesorId);

                    listado.Add(usuarioProfesor);
                }

                return(listado);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                accesoDatos.cerrarConexion();
            }
        }
        private void btnModificar_Click(object sender, EventArgs e)
        {
            if (!CommonHelper.SeleccionoRegistro(dgvGrilla))
            {
                return;
            }

            var frm = new Form();

            switch ((TipoUsuario)cmbTipoUsuario.SelectedItem)
            {
            case TipoUsuario.Estudiante:
            {
                UsuarioAlumno usuario = (UsuarioAlumno)dgvGrilla.SelectedRows[0].DataBoundItem;
                frm = new frmUsuario(usuario.Usuario);
            } break;

            case TipoUsuario.Docente:
            {
                UsuarioProfesor usuario = (UsuarioProfesor)dgvGrilla.SelectedRows[0].DataBoundItem;
                frm = new frmUsuario(usuario.Usuario);
            } break;

            case TipoUsuario.Administrador:
            {
                Usuario usuario = (Usuario)dgvGrilla.SelectedRows[0].DataBoundItem;
                frm = new frmUsuario(usuario);
            } break;
            }

            if (frm.ShowDialog() == DialogResult.OK)
            {
                cargarGrilla();
            }
        }
        private void btnEliminar_Click(object sender, EventArgs e)
        {
            if (!CommonHelper.SeleccionoRegistro(dgvGrilla))
            {
                return;
            }

            if (btnEliminar.Text == "Eliminar")
            {
                if (!CommonHelper.Confirma())
                {
                    return;
                }
            }

            try
            {
                UsuarioService s = new UsuarioService();

                Usuario usuario = new Usuario();

                switch ((TipoUsuario)cmbTipoUsuario.SelectedItem)
                {
                case TipoUsuario.Estudiante:
                {
                    UsuarioAlumno aux = (UsuarioAlumno)dgvGrilla.SelectedRows[0].DataBoundItem;
                    usuario = aux.Usuario;
                } break;

                case TipoUsuario.Docente:
                {
                    UsuarioProfesor aux = (UsuarioProfesor)dgvGrilla.SelectedRows[0].DataBoundItem;
                    usuario = aux.Usuario;
                } break;

                case TipoUsuario.Administrador:
                {
                    usuario = (Usuario)dgvGrilla.SelectedRows[0].DataBoundItem;
                } break;
                }

                if (btnEliminar.Text == "Eliminar")
                {
                    s.Delete(usuario.Id);
                }
                else
                {
                    s.Restaurar(usuario.Id);
                    CommonHelper.ShowInfo("Usuario restaurado con éxito.");
                }

                cargarGrilla();
            }
            catch (Exception ex)
            {
                CommonHelper.ShowError(ex.Message);
            }
        }
        private bool validar()
        {
            UsuarioService s = new UsuarioService();

            Profesor profesor = (Profesor)dgvProfesores.SelectedRows[0].DataBoundItem;

            usuarioProfesor                       = new UsuarioProfesor();
            usuarioProfesor.Profesor              = profesor;
            usuarioProfesor.Usuario               = new Usuario();
            usuarioProfesor.Usuario.Nombre        = profesor.Id + "." + TipoUsuario.Docente.ToString().ToLower();
            usuarioProfesor.Usuario.Contraseña    = profesor.DNI;
            usuarioProfesor.Usuario.TipoUsuario   = TipoUsuario.Docente;
            usuarioProfesor.Usuario.Deshabilitado = false;

            var usuarios = s.GetAll().FindAll(x => x.Nombre == usuarioProfesor.Usuario.Nombre).OrderBy(x => x.Deshabilitado).ToList();

            foreach (var Usuario in usuarios)
            {
                if (Usuario.Deshabilitado == false)
                {
                    throw new WarningException("El profesor seleccionado ya tiene un usuario asociado.");
                }
                else
                {
                    if (CommonHelper.Confirma("El profesor seleccionado posee un usuario asignado que se encuentra deshabilitado. ¿Desea restaurarlo? Si selecciona \"No\", no se guardará el nuevo usuario."))
                    {
                        s.Restaurar(Usuario.Id);

                        CommonHelper.ShowInfo("Usuario restaurado correctamente.");
                        this.DialogResult = DialogResult.OK;

                        return(false);
                    }
                    else
                    {
                        throw new WarningException("Restauración cancelada");
                    }
                    //if (!CommonHelper.Confirma("El profesor seleccionado tiene asociado un usuario deshabilitado que puede ser restaurado, ¿desea continuar de todos modos?"))
                    //    throw new WarningException("Asignación cancelada.");
                }
            }

            return(true);
        }
        private void dgvGrilla_SelectionChanged(object sender, EventArgs e)
        {
            btnEliminar.Text = "Eliminar";

            var rows = dgvGrilla.SelectedRows;

            if (rows != null && rows.Count > 0)
            {
                Usuario usuario = new Usuario();

                switch ((TipoUsuario)cmbTipoUsuario.SelectedItem)
                {
                case TipoUsuario.Estudiante:
                {
                    UsuarioAlumno aux = (UsuarioAlumno)dgvGrilla.SelectedRows[0].DataBoundItem;
                    usuario = aux.Usuario;
                }
                break;

                case TipoUsuario.Docente:
                {
                    UsuarioProfesor aux = (UsuarioProfesor)dgvGrilla.SelectedRows[0].DataBoundItem;
                    usuario = aux.Usuario;
                }
                break;

                case TipoUsuario.Administrador:
                {
                    usuario = (Usuario)dgvGrilla.SelectedRows[0].DataBoundItem;
                }
                break;
                }

                btnEliminar.Text = usuario.Deshabilitado ? "Restaurar" : "Eliminar";
            }
        }