protected new SortedBindingList <HorarioInfo> Localize(FilterItem item)
        {
            SortedBindingList <HorarioInfo> list = null;
            HorarioList sourceList = null;

            switch (FilterType)
            {
            case IFilterType.None:
                if (List == null)
                {
                    MessageBox.Show(Face.Resources.Messages.NO_RESULTS);
                    return(null);
                }
                sourceList = List;
                break;

            case IFilterType.Filter:
                if (FilteredList == null)
                {
                    MessageBox.Show(Face.Resources.Messages.NO_RESULTS);
                    return(null);
                }
                sourceList = FilteredList;
                break;

            default:
                sourceList = List;
                break;
            }

            if (item.FilterProperty == IFilterProperty.All)
            {
                FCriteria criteria = GetCriteria(string.Empty, item.Value, null, item.Operation);
                list = sourceList.GetSortedSubList(criteria, _properties_list);
            }
            else
            {
                FCriteria criteria = GetCriteria(item.Column, item.Value, null, item.Operation);
                list = sourceList.GetSortedSubList(criteria, _properties_list);
            }

            if (list.Count == 0)
            {
                MessageBox.Show(Face.Resources.Messages.NO_RESULTS);
                return(sourceList.GetSortedList());
            }

            DatosSearch.DataSource = list;
            DatosSearch.MoveFirst();

            AddFilterLabel(item);

            return(list);
        }
        protected override bool DoSearch()
        {
            bool             promo        = false;
            bool             plan         = false;
            PromocionList    sublist      = null;
            PlanEstudiosList sublist_plan = null;

            DateTime inicio = DateTime.MinValue;
            DateTime fin    = DateTime.MaxValue;

            if (Desde_DTP.Checked)
            {
                inicio = Desde_DTP.Value;
            }

            if (Hasta_DTP.Checked)
            {
                fin = Hasta_DTP.Value;
            }

            if (_lista == null)
            {
                MessageBox.Show(Resources.Messages.NO_RESULTS);
                return(false);
            }

            FCriteria criteria = null;

            if (Valor_TB.Text != " ")
            {
                foreach (Control ctl in this.Campos_Groupbox.Controls)
                {
                    if (((System.Windows.Forms.RadioButton)ctl).Checked)
                    {
                        switch (ctl.Name)
                        {
                        case "Promocion_RB":
                        {
                            CriteriaEx criteriaex = Promocion.GetCriteria(Promocion.OpenSession());
                            criteriaex.AddContains("Nombre", Valor_TB.Text);
                            criteriaex.Childs = false;
                            sublist           = PromocionList.GetList(criteriaex);
                            // No existe la promoción
                            if (sublist.Count == 0)
                            {
                                MessageBox.Show(Resources.Messages.NO_RESULTS);
                                return(false);
                            }
                            promo = true;
                            break;
                        }

                        case "Plan_RB":
                        {
                            CriteriaEx criteriaex = PlanEstudios.GetCriteria(PlanEstudios.OpenSession());
                            criteriaex.AddContains("Nombre", Valor_TB.Text);
                            criteriaex.Childs = false;
                            sublist_plan      = PlanEstudiosList.GetList(criteriaex);
                            // No existe la promoción
                            if (sublist_plan.Count == 0)
                            {
                                MessageBox.Show(Resources.Messages.NO_RESULTS);
                                return(false);
                            }
                            plan = true;
                            break;
                        }
                        }
                    }
                }
            }

            // Consulta en la bd
            SortedBindingList <HorarioInfo> lista = null;

            if (SortProperty != string.Empty)
            {
                if (promo)
                {
                    HorarioList list = HorarioList.GetList(HorarioList.GetFilteredList(HorarioList.GetFilteredFechaList(_lista, inicio, fin),
                                                                                       sublist, "OidPromocion"));
                    lista = list.ToSortedList(SortProperty, SortDirection);
                }
                else
                {
                    if (plan)
                    {
                        HorarioList list = HorarioList.GetList(HorarioList.GetFilteredList(HorarioList.GetFilteredFechaList(_lista, inicio, fin),
                                                                                           sublist_plan, "OidPlan"));
                        lista = list.ToSortedList(SortProperty, SortDirection);
                    }
                    else
                    {
                        lista = HorarioList.SortList(HorarioList.GetFilteredFechaList(_lista, inicio, fin), SortProperty, SortDirection);
                    };
                }
            }
            else
            {
                lista = _lista.GetSortedSubList(criteria, "Oid", SortDirection);
            }

            Datos.DataSource = lista;

            if (lista.Count == 0)
            {
                MessageBox.Show(Resources.Messages.NO_RESULTS);
                return(false);
            }

            Datos.MoveFirst();

            return(true);
        }