예제 #1
0
        /// <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);
            }
        }
예제 #2
0
        /// <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);
            }
        }