protected void ObjSolicitudesT_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
        {
            classFiltro f = new classFiltro();
            f.VIG_SOL = Convert.ToInt16(Request.Cookies["sircc_vig"].Value);

            if (chkDepDel.Checked)
            {
                f.DEP_PSOL = CboDepDel.SelectedValue;
            }

            if (chkObj.Checked)
            {
                f.OBJ_SOL = txtObj.Text.ToUpper();
            }

            if (chkFecha.Checked) {
                f.TIPO_FECHA =(classFiltro.TipoFecha)cboTipoFecha.SelectedIndex;
                f.FECHA_I = Convert.ToDateTime(txtFechaIni.Text);
                f.FECHA_F = Convert.ToDateTime(txtFechaFin.Text);
            }
            if (chkFuncionario.Checked) {
                f.ID_ABOG_ENC = CboEncargados.SelectedValue;
            }
            if (chkCodSol.Checked) {
                f.COD_SOL = TxtCodSol.Text;
            }

            e.InputParameters["Filtro"] = f;
        }
        protected void ObjProcesosT_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
        {
            /*e.InputParameters["Vigencia"] =Convert.ToInt16(Request.Cookies["sircc_vig"].Value);
               e.InputParameters["Dep_Del"] = CboDepDel.SelectedValue;
            */

            classFiltro f = new classFiltro();
            f.VIG_SOL = Convert.ToInt16(Request.Cookies["sircc_vig"].Value);

            if (chkDepDel.Checked)
            {
                f.DEP_PSOL = CboDepDel.SelectedValue;
            }

            if (chkObj.Checked)
            {
                f.OBJ_SOL = txtObj.Text.ToUpper() ;
            }

            if (chkFecha.Checked)
            {
                f.TIPO_FECHAP = (classFiltro.TipoFechap)cboTipoFecha.SelectedIndex;
                f.FECHA_I = Convert.ToDateTime(txtFechaIni.Text);
                f.FECHA_F = Convert.ToDateTime(txtFechaFin.Text);
            }
            if (chkFuncionario.Checked)
            {
                f.ID_ABOG_ENC = CboEncargados.SelectedValue;
            }
            if (chkNumPro.Checked)
            {
                f.NUM_PRO = TxtNumPro.Text;
            }

            e.InputParameters["Filtro"] = f;
        }
 public List<vPCONTRATOS> Consultar(classFiltro Filtro)
 {
     return mProc.Consultar(Filtro);
 }
 /*
 private static readonly Func<Entities, classFiltro, IQueryable<PSOLICITUDES>> 
     PSOLICITUDESWithFilters = CompiledQuery.Compile(
     (Entities context, classFiltro f) =>
   context.PSOLICITUDES.Where(c =>  f.COD_EP == "" || c.COD_EP == f.COD_EP)
   .Where(c => c.DEP_PSOL == "" || c.DEP_PSOL == c.DEP_PSOL)
  );
 */
 public List<vPSolicitudes> Consultar2(classFiltro Filtro)
 {
     classFiltro f = Filtro;
     List<vPSolicitudes> lst = new List<vPSolicitudes>();
     //IQueryable<PSOLICITUDES> lst
     using (ctx = new Entities())
     {
         var Lst =
             ctx.PSOLICITUDES.
             Where(c => f.COD_SOL == null || c.COD_EP == f.COD_SOL)
            .Where(c => f.DEP_PSOL == null || c.DEP_PSOL == f.DEP_PSOL)
            .Where(c => f.DEP_SOL == null || c.DEP_PSOL == f.DEP_SOL)
            .Where(c => f.VAL_CON.HasValue == false || c.VAL_CON == f.VAL_CON)
            .Where(c => (f.ID_ABOG_ENC == null && c.HREVISADO1 != null) || c.HREVISADO1.NIT_ABOG_RECIBE == f.ID_ABOG_ENC)
            .Where(c => f.OBJ_SOL == null || c.OBJ_SOL == f.OBJ_SOL)
            .Where(c => f.COD_TPRO == null || c.COD_TPRO == f.COD_TPRO)
            ;
         Mapper.Map(Lst, lst);
     }
     return lst.ToList();
 }
        public List<vPSolicitudes> Consultar(classFiltro Filtro )
        {
            List<vPSolicitudes> lst= new List<vPSolicitudes>();

            List<string> filtro =new List<string>(); ;
            Dictionary<string, object> dict = new Dictionary<string, object>();
            int i = 0;
            string Key;
            if (Filtro.COD_SOL != null) {
                Key="COD_SOL";
                dict.Add(Key, Filtro.COD_SOL);
                filtro.Add(string.Format("{0} == @{1}", Key,i++));
            }
            if (Filtro.DEP_PSOL != null)
            {
                Key = "DEP_PSOL";
                dict.Add(Key, Filtro.DEP_PSOL);
                filtro.Add(string.Format("{0} == @{1}", Key, i++));
            }
            if (Filtro.DEP_SOL != null)
            {
                Key = "DEP_SOL";
                dict.Add(Key, Filtro.DEP_SOL);
                filtro.Add(string.Format("{0} == @{1}", Key, i++));
            }
            /*
            if (Filtro.ID_ABOG_ENC != null)
            {
                Key = "HREVISADO1.NIT_ABOG_RECIBE";
                dict.Add(Key, Filtro.ID_ABOG_ENC);
                filtro.Add(string.Format("{0} == @{1}", Key, i++));
            }*/
            if (Filtro.VAL_CON != null)
            {
                Key = "VAL_CON";
                dict.Add(Key, Filtro.VAL_CON);
                filtro.Add(string.Format("{0} == @{1}", Key, i++));
            }
           
            if (Filtro.OBJ_SOL != null)
            {
                Key = "OBJ_SOL";
                dict.Add(Key, Filtro.OBJ_SOL);
                filtro.Add(string.Format(" OBJ_SOL.Contains(@0)  ",  i++));
            }
            if (Filtro.COD_TPRO != null)
            {
                Key = "COD_TPRO";
                dict.Add(Key, Filtro.COD_TPRO);
                filtro.Add(string.Format("{0} == @{1}", Key, i++));
            }
        
        /*
            public string COD_EP { get; set; }
        public decimal ID_HREV { get; set; }
        public string TIP_CON { get; set; }
        public string STIP_CON { get; set; }
        */
        
            
            string predicado = string.Join(" and ", filtro);
            
            crearMapeo();
            List<PSOLICITUDES> Lst= new List<PSOLICITUDES>();
            using (ctx = new Entities()){
                
                Lst = ctx.PSOLICITUDES.Where(t => t.VIG_SOL == Filtro.VIG_SOL).ToList();

                if (Filtro.TIPO_FECHA==classFiltro.TipoFecha.REGISTRO)
                {
                     Lst = Lst.Where(t => t.FECHA_REGISTRO.Value.Date >= Filtro.FECHA_I.Date &&
                           t.FECHA_REGISTRO.Value.Date <= Filtro.FECHA_F.Date
                        ).ToList();    
                }
                else if (Filtro.TIPO_FECHA == classFiltro.TipoFecha.REVISADO)
                {
                   
                    Lst = Lst.Where(tt=>tt.HREVISADO1.FECHA_REVISADO.HasValue).Where(t => 
                        t.HREVISADO1.FECHA_REVISADO.Value.Date >= Filtro.FECHA_I.Date &&
                        t.HREVISADO1.FECHA_REVISADO.Value.Date <= Filtro.FECHA_F.Date 
                     ).ToList();
                }
                if (Filtro.ID_ABOG_ENC != null)
                {
                    Lst = Lst.Where(t => t.HREVISADO1.NIT_ABOG_RECIBE == Filtro.ID_ABOG_ENC).ToList();
                }
                if (!String.IsNullOrEmpty(predicado))
                {
                  //  Lst = Lst.AsQueryable().Where(predicado, dict.Values.ToArray()).ToList();
                }
                 /*
                Lst = ctx.PSOLICITUDES.SqlQuery("Select * FRom PSolicitudes Where Vig_Sol=2013 And HREVISADO1.NIT_ABOG_RECIBE=50950218").ToList();
                  */
                if (Filtro.DEP_PSOL != null)
                {
                    Lst = Lst.Where(t => t.DEP_PSOL == Filtro.DEP_PSOL).ToList();
                }

                if (Filtro.OBJ_SOL != null)
                {
                    Lst=Lst.Where(t=>t.OBJ_SOL.Contains(Filtro.OBJ_SOL)).ToList();
                }

                if (Filtro.COD_SOL != null)
                {

                    Lst = Lst.Where(t => t.COD_SOL == Filtro.COD_SOL).ToList();
                }
                Mapper.Map(Lst, lst);
                return lst;
            }
        }