public Agenda(long idAge, long idProf, DateTime fecha_ini, DateTime fecha_fin, List <DiaAgenda> listaDias, TipoAgenda tA) { idAgenda = idAge; idProfesional = idProf; fecha_inicial = fecha_ini; fecha_final = fecha_fin; listaDeDiasAgenda = listaDias; tipoAgenda = tA; }
public Agenda traerAgendaDelProfesional(Usuario usuario) { string procedimiento = "BEMVINDO.sp_agenda_del_profesional"; SqlParameter pIdProfesional = new SqlParameter("@id_profesional", usuario.id); List <SqlParameter> parametros = new List <SqlParameter> { pIdProfesional }; List <Dictionary <string, object> > listaDB = db.ejecutarStoredProcedure(procedimiento, parametros); if (listaDB.Count == 0) { return(new Agenda(0, usuario.id, db.getDate(), db.getDate(), new List <DiaAgenda>(), TipoAgenda.Nuevo)); } //creo los dias agenda List <DiaAgenda> listaDiasAgenda = new List <DiaAgenda>(); DiaAgenda diaAgenda; foreach (Dictionary <string, object> dic in listaDB) { if (listaDiasAgenda.Exists(x => x.idDiaAgenda == Convert.ToInt64(dic["id_dia_agenda"]))) { diaAgenda = listaDiasAgenda.Find(x => x.idDiaAgenda == Convert.ToInt64(dic["id_dia_agenda"])); diaAgenda.especialidades.Add((string)dic["descripcion"], Convert.ToInt64(dic["id_especialidad"])); } else { Dictionary <string, long> nuevaEsp = new Dictionary <string, long>(); nuevaEsp.Add((string)dic["descripcion"], Convert.ToInt64(dic["id_especialidad"])); diaAgenda = new DiaAgenda(Convert.ToInt64(dic["id_dia_agenda"]), (string)dic["dia"], nuevaEsp, (TimeSpan)dic["horario_inicial"], (TimeSpan)dic["horario_final"]); listaDiasAgenda.Add(diaAgenda); } } TipoAgenda tipo = ((DateTime)listaDB[0]["fecha_final"] < db.getDate())? TipoAgenda.Vencido : TipoAgenda.Actual; return(new Agenda(Convert.ToInt64(listaDB[0]["id_agenda"]), usuario.id, (DateTime)listaDB[0]["fecha_inicial"], (DateTime)listaDB[0]["fecha_final"], listaDiasAgenda, tipo)); }