コード例 #1
0
        private void PopularListaCoordinadores()
        {
            var ListaCoordinadores = new List <cSELECCION_COORDINADORES>();

            LstCoordinadores = new ObservableCollection <cSELECCION_COORDINADORES>();
            //---------------------------------------------Obtiene lista de Usuarios ACTIVOS y los que pertenecen al centro seleccionado
            var predicate = PredicateBuilder.True <USUARIO>();

            //Si se debe filtrar a los coordinadores
            //--Obtiene los empleados que estan relacionados a un Usuario donde pertenescan al centro seleccionado
            predicate = predicate.And(w => w.ESTATUS.Equals("S") && w.EMPLEADO.ID_CENTRO == SelectCentro && w.USUARIO_ROL.Select(s => (short?)s.ID_ROL).Contains(SelectDep.ID_ROL));
            if (SelectedCoordinadoresAsignados != null && SelectCentro > 0)
            {
                // Filtra a la persona que ya esta registrada como coordinadora para que no aparesca en la lista de coordinadores
                predicate = predicate.And(w => w.ID_PERSONA != SelectedCoordinadoresAsignados.OBJETO_DEPARTAMENTO_ACCESO.USUARIO.ID_PERSONA);
            }///Filtra Usuario seleccioando para que no vuelva aparecer en al alista
            foreach (var PERSONA in UsuarioControlador.GetData(predicate.Expand()).Select(s => s.EMPLEADO.PERSONA).OrderBy(o => o.PATERNO).ThenBy(then => then.MATERNO).ThenBy(then2 => then2.NOMBRE))
            {
                var ObjCoordinador           = new cSELECCION_COORDINADORES();
                System.Text.StringBuilder sb = new System.Text.StringBuilder();

                ObjCoordinador.ID_EMPLEADO = PERSONA.ID_PERSONA;
                sb.Append(!string.IsNullOrEmpty(PERSONA.PATERNO) ? PERSONA.PATERNO.Trim() : "");
                sb.Append("  ");
                sb.Append(!string.IsNullOrEmpty(PERSONA.MATERNO) ? PERSONA.MATERNO.Trim() : "");
                sb.Append("  ");
                sb.Append(!string.IsNullOrEmpty(PERSONA.NOMBRE) ? PERSONA.NOMBRE.Trim() : "");
                ObjCoordinador.COORDINADOR_NOMBRE = sb.ToString();
                ListaCoordinadores.Add(ObjCoordinador);
            }
            System.Windows.Application.Current.Dispatcher.Invoke((Action)(delegate
            {
                LstCoordinadores = new ObservableCollection <cSELECCION_COORDINADORES>(ListaCoordinadores);
                LstCoordinadores.Insert(0, new cSELECCION_COORDINADORES()
                {
                    ID_EMPLEADO = -1, COORDINADOR_NOMBRE = "SELECCIONE"
                });
                SelectedCoordinador = LstCoordinadores.FirstOrDefault(w => w.ID_EMPLEADO == -1);
            }));
        }