/// <summary> /// Metodo que devolve uma lista de utilizadores que vao participar na consulta /// </summary> /// <param name="ConsultaId"></param> /// <returns></returns> public List <Utilizador> GetUtilizadoresInConsulta(int ConsultaId) { int utilizadorId; UtilizadorDA utilizadorDA = new UtilizadorDA(); DataTable dataTable = new DataTable(); connection = new SqlConnection(connectionString); Utilizador utilizador; List <Utilizador> listaUtilizadores = new List <Utilizador>(); try { connection.Open(); } catch { connection.Close(); return(null); } if (connection.State.ToString() == "Open") { //Construçao da query SqlCommand cmdins = new SqlCommand(); string comando; cmdins.Connection = connection; comando = "select * from Consulta_Utilizador"; cmdins.CommandText = comando; SqlDataAdapter da = new SqlDataAdapter(cmdins.CommandText, connection); da.Fill(dataTable); foreach (DataRow dataRow in dataTable.Rows) { if (dataRow["ConsultaID_Consulta"].ToString() == ConsultaId.ToString()) { utilizadorId = int.Parse(dataRow["UtilizadorID_Utilizador"].ToString()); utilizador = utilizadorDA.GetUtilizador(utilizadorId); listaUtilizadores.Add(utilizador); } } return(listaUtilizadores); } else { return(null); } }
/// <summary> /// Metodo que devolve todas as consultas disponiveis - FUNCIONA kinda /// </summary> /// <param name="date"></param> /// <returns></returns> public List <DateTime> GetAllConsultasDisp(DateTime date, int idLocal, int idFisioterapeuta) { SqlDataReader dataReader; List <DateTime> horasTodas = new List <DateTime>(); List <Consulta> listaConsultas = new List <Consulta>(); List <Utilizador> fisioterapeutas = new List <Utilizador>(); UtilizadorDA utilizadorMetodos = new UtilizadorDA(); connection = new SqlConnection(connectionString); Consulta consulta; try { connection.Open(); } catch { connection.Close(); return(null); } if (connection.State.ToString() == "Open") { const int lastHour = 19; // Hora final/hora de encerramento da clinica DateTime data = new DateTime(date.Year, date.Month, date.Day, 9, 0, 0); // Hora inicial da data escolhida. while (data.Hour < lastHour) { horasTodas.Add(data); data = data.AddHours(1); } listaConsultas = GetAllConsultas(); // So verifica se as datas sao iguais ainda nao ve locais foreach (DateTime date1 in horasTodas.ToList()) //To list porque senao dava erro { foreach (Consulta consulta1 in listaConsultas) { int result = DateTime.Compare(date1, consulta1.Data); if (result == 0) { fisioterapeutas = GetUtilizadoresInConsulta(consulta1.ID); foreach (Utilizador utilizador in fisioterapeutas) { if (idFisioterapeuta == utilizador.ID || idLocal == consulta1.IdLocal) { horasTodas.Remove(date1); } } //horasTodas.Remove(date1); } /* int result = DateTime.Compare(date1, consulta1.Data); // So isto funciona * * if (result == 0) * { * horasTodas.Remove(date1); * } */ } } return(horasTodas); } else { return(null); } }