public static List <Agenda_Diaria> getAgendaProfesional(Int64 matricula, int id_especialidad, Int64 id_rango) { SqlCommand traerAgendas = new SqlCommand(); traerAgendas.Connection = DBConnector.ObtenerConexion(); traerAgendas.CommandText = "SELECT matricula,dia,hora_desde,hora_hasta,id_especialidad,id_rango FROM ELIMINAR_CAR.Agenda_Diaria WHERE matricula=@matricula AND id_especialidad=@id_especialidad AND id_rango=@id_rango"; traerAgendas.Parameters.Add("@matricula", SqlDbType.BigInt).Value = matricula; traerAgendas.Parameters.Add("@id_especialidad", SqlDbType.Int).Value = id_especialidad; traerAgendas.Parameters.Add("@id_rango", SqlDbType.BigInt).Value = id_rango; SqlDataReader reader = traerAgendas.ExecuteReader(); List <Agenda_Diaria> lista = new List <Agenda_Diaria>(); while (reader.Read()) { Agenda_Diaria a = new Agenda_Diaria(); a.matricula = reader.GetInt64(0); a.dia = (DayOfWeek)reader.GetInt32(1); a.hora_desde = reader.GetTimeSpan(2); a.hora_hasta = reader.GetTimeSpan(3); a.id_especialidad = reader.GetInt32(4); a.id_rango = reader.GetInt64(5); lista.Add(a); } reader.Close(); return(lista); }
public static Boolean seSuperponen(List <Agenda_Diaria> agendas, Agenda_Diaria nueva) { List <Agenda_Diaria> agendasDelDia = agendas.FindAll(a => a.dia == nueva.dia); List <TimeSpan> horarios = new List <TimeSpan>(); agendasDelDia.ForEach(a => horarios.AddRange(a.generarHorarios())); return(nueva.generarHorarios().Any(horario => horarios.Contains(horario))); }
public List <DayOfWeek> diasQueTrabajaNormalmente(int id_especialidad, Rango_Atencion rango) // Sin sacarle los dias cancelados { List <Agenda_Diaria> agenda = Agenda_Diaria.getAgendaProfesional(this.matricula, id_especialidad, rango.id_rango); return(agenda.Select(a => a.dia).ToList <DayOfWeek>()); }