public SortedDictionary <long, DisponibilidadInfo> GetDisponibilidadesProfesores(DateTime fecha_inicio) { SortedDictionary <long, DisponibilidadInfo> lista = new SortedDictionary <long, DisponibilidadInfo>(); string instructores = string.Empty; foreach (InstructorInfo item in this) { instructores += item.Oid.ToString() + ","; } if (instructores != string.Empty) { instructores = instructores.Substring(0, instructores.Length - 1); //hacer select para traer disponibilidades de los profesores de la lista para la semana seleccionada string query = Disponibilidades.SELECT_BY_LIST(instructores, fecha_inicio); IDataReader reader = nHManager.Instance.SQLNativeSelect(query); while (reader.Read()) { DisponibilidadInfo dispo = DisponibilidadInfo.Get(reader, false); if (!lista.ContainsKey(dispo.OidInstructor)) { lista.Add(dispo.OidInstructor, dispo); } } } return(lista); }
// called to retrieve data from db protected override void Fetch(CriteriaEx criteria) { this.RaiseListChangedEvents = false; SessionCode = criteria.SessionCode; Childs = criteria.Childs; try { if (nHMng.UseDirectSQL) { IDataReader reader = Disponibilidades.DoNativeSELECT(AppContext.ActiveSchema.Code, Session()); IsReadOnly = false; while (reader.Read()) { this.AddItem(DisponibilidadInfo.Get(reader, Childs)); } IsReadOnly = true; } else { IList <Disponibilidad> list = criteria.List <Disponibilidad>(); if (list.Count > 0) { IsReadOnly = false; foreach (Disponibilidad item in list) { this.AddItem(item.GetInfo()); } IsReadOnly = true; } } } catch (Exception ex) { iQExceptionHandler.TreatException(ex); } this.RaiseListChangedEvents = true; }