public override ComboBoxSourceList RellenaComboInstructores(long oid, long tipo, int index, long oid_submodulo)
        {
            long oid_clase = oid;

            if (oid_clase <= 0)
            {
                ComboBoxSourceList combo_list = new ComboBoxSourceList();
                combo_list.Add(new ComboBoxSource(0, ""));
                Datos_Instructores.DataSource = combo_list;
                return(combo_list);
            }

            List <Submodulo_Instructor_PromocionInfo> list = new List <Submodulo_Instructor_PromocionInfo>();

            if (_profesores == null)
            {
                _profesores = InstructorList.GetInstructoresHorariosList(EntityInfo.OidPromocion, EntityInfo.FechaInicial, EntityInfo.FechaFinal);
            }


            if (_disponibilidades == null)
            {
                _disponibilidades = _profesores.GetDisponibilidadesProfesores(EntityInfo.FechaInicial);
            }
            DisponibilidadInfo disp = null;

            foreach (InstructorInfo profesor in _profesores)
            {
                if (Horario.ProfesorLibre(_instructores_asignados, index, profesor.Oid,
                                          _lista_sesiones, _profesores, -1, EntityInfo.FechaInicial, _disponibilidades) &&
                    _disponibilidades.TryGetValue(profesor.Oid, out disp) &&
                    disp.Semana[index])
                {
                    Instructor_PromocionInfo promo = profesor.Promociones.GetItemByProperty("OidPromocion", EntityInfo.OidPromocion);
                    if (tipo != 2)
                    {
                        Submodulo_Instructor_PromocionInfo sub = promo != null?promo.Submodulos.GetItemByProperty("OidSubmodulo", oid_submodulo) : null;

                        if (sub != null)
                        {
                            list.Add(sub);
                        }
                    }
                    else
                    {
                        Submodulo_Instructor_PromocionInfo sub = promo != null?promo.Submodulos.GetItemByProperty("OidModulo", _lista_sesiones[index].OidModulo) : null;

                        if (sub != null)
                        {
                            list.Add(sub);
                        }
                    }
                }
            }

            //foreach (Submodulo_Instructor_PromocionInfo info in _submodulos)
            //{
            //    if (info.OidSubmodulo == oid_submodulo && info.OidPromocion == EntityInfo.OidPromocion)
            //    {
            //        if (Horario.ProfesorLibre(_instructores_asignados, index, info.OidInstructor,
            //                                _lista_sesiones, _profesores, -1, EntityInfo.FechaInicial, _disponibilidades))
            //            list.Add(info);
            //    }
            //}

            Submodulo_Instructor_PromocionList lista = Submodulo_Instructor_PromocionList.GetChildList(list);

            _combo_instructores  = new Library.Instruction.HComboBoxSourceList(lista, _profesores);
            _combo_clases.Childs = _combo_instructores;

            Datos_Instructores.DataSource = _combo_clases.Childs;
            return(_combo_clases.Childs);
        }