public static List <AgendamentoModels> GetListAgendamento(MySqlConnection conn, int usuarioClinica, int horarioAtendimento)
        {
            HttpResponseMessage retorno = new HttpResponseMessage();
            string connectionString     = ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString;
            List <AgendamentoModels> listAgendamento = new List <AgendamentoModels>();

            try
            {
                MySqlCommand comando = new MySqlCommand("SELECT AGD.ID, AGD.ID_USUARIO_APLICATIVO, AGD.DATA, AGD.HORA, " +
                                                        "AGD.STATUS, AGD.ESTADO, AGD.DESCRICAO FROM TB_AGENDAMENTO AGD " +
                                                        "WHERE AGD.ID_USUARIO_CLINICA = @USUARIOCLINICA AND AGD.STATUS = 1", conn);
                if (horarioAtendimento > 0)
                {
                    comando.CommandText += " AND AGD.ID_HORARIO_ATENDIMENTO = @HORARIOATENDIMENTO";
                }

                comando.Parameters.AddWithValue("@USUARIOCLINICA", usuarioClinica);
                comando.Parameters.AddWithValue("@HORARIOATENDIMENTO", horarioAtendimento);

                try
                {
                    conn.Open();
                    MySqlDataReader rdr = comando.ExecuteReader();

                    while (rdr.Read())
                    {
                        AgendamentoModels userAgendamento = new AgendamentoModels();
                        userAgendamento.id = Convert.ToInt32(rdr[0].ToString());
                        userAgendamento.id_Usuario_Aplicativo = Convert.ToInt32(rdr[1].ToString());
                        userAgendamento.data      = Convert.ToDateTime(rdr[2].ToString());
                        userAgendamento.hora      = TimeSpan.Parse(rdr[3].ToString());
                        userAgendamento.status    = Convert.ToInt32(rdr[4].ToString());
                        userAgendamento.estado    = rdr[5].ToString();
                        userAgendamento.descricao = rdr[6].ToString();

                        listAgendamento.Add(userAgendamento);
                    }

                    rdr.Close();
                    return(listAgendamento);
                }
                catch (Exception e)
                {
                    return(new List <AgendamentoModels>());
                }
                finally
                {
                }
            }
            catch (Exception e)
            {
                return(new List <AgendamentoModels>());
            }
        }
        public HttpResponseMessage GetListAgendamento(string usuario)
        {
            string connectionString = ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString;
            List <AgendamentoModels> listAgendamento = new List <AgendamentoModels>();

            try
            {
                using (MySqlConnection conn = new MySqlConnection(connectionString))
                {
                    MySqlCommand comando = new MySqlCommand("SELECT AGD.ID, AGD.ID_USUARIO_APLICATIVO, AGD.DATA, AGD.HORA," +
                                                            "AGD.STATUS, AGD.ESTADO, AGD.DESCRICAO, " +
                                                            "CONCAT(APL.NOME, ' ', APL.SOBRENOME), CLI.NOME, " +
                                                            "CONCAT(CLI.ENDERECO, ', Número ', CLI.NUMERO), " +
                                                            "CONCAT(CID.NOME, '/', (SELECT EST.SIGLA FROM TB_ESTADO EST WHERE EST.ID = CID.ID_ESTADO)), " +
                                                            "AGD.ID_USUARIO_CLINICA " +
                                                            "FROM TB_AGENDAMENTO AGD " +
                                                            "JOIN TB_USUARIO_CLINICA CLI ON CLI.ID = AGD.ID_USUARIO_CLINICA " +
                                                            "JOIN TB_USUARIO_APLICATIVO APL ON APL.ID = AGD.ID_USUARIO_APLICATIVO " +
                                                            "JOIN TB_USUARIO USU ON USU.ID = APL.ID_USUARIO " +
                                                            "JOIN TB_HORARIO_ATENDIMENTO HOR ON HOR.ID = AGD.ID_HORARIO_ATENDIMENTO " +
                                                            "JOIN TB_CIDADE CID " +
                                                            "WHERE CID.ID = HOR.ID_CIDADE " +
                                                            "AND USU.EMAIL = '*****@*****.**' " +
                                                            "ORDER BY AGD.DATA, AGD.HORA", conn);

                    comando.Parameters.AddWithValue("@USUARIO", usuario);

                    try
                    {
                        conn.Open();
                        MySqlDataReader rdr = comando.ExecuteReader();

                        while (rdr.Read())
                        {
                            AgendamentoModels userAgendamento = new AgendamentoModels();
                            userAgendamento.dadosComplementares = new AgendamentoComplementar();
                            userAgendamento.id = Convert.ToInt32(rdr[0].ToString());
                            userAgendamento.id_Usuario_Aplicativo = Convert.ToInt32(rdr[1].ToString());
                            userAgendamento.data = Convert.ToDateTime(rdr[2].ToString());
                            userAgendamento.dadosComplementares.dataConsulta = userAgendamento.data.ToShortDateString();
                            userAgendamento.hora = TimeSpan.Parse(rdr[3].ToString());
                            userAgendamento.dadosComplementares.horaConsulta = userAgendamento.hora.ToString().Substring(0, 5);
                            userAgendamento.status    = Convert.ToInt32(rdr[4].ToString());
                            userAgendamento.estado    = rdr[5].ToString();
                            userAgendamento.descricao = rdr[6].ToString();
                            userAgendamento.dadosComplementares.nomeUsuarioAplicativo     = rdr[7].ToString();
                            userAgendamento.dadosComplementares.nomeUsuarioClinica        = rdr[8].ToString();
                            userAgendamento.dadosComplementares.enderecoUsuarioClinica    = rdr[9].ToString();
                            userAgendamento.dadosComplementares.cidadeEstadUsuarioClinica = rdr[10].ToString();
                            userAgendamento.id_Usuario_Clinica = Convert.ToInt32(rdr[11].ToString());

                            listAgendamento.Add(userAgendamento);
                        }

                        foreach (var agendamento in listAgendamento)
                        {
                            if (listAgendamento.Where(x => x.id_Agendamento == agendamento.id).Count() > 0)
                            {
                                agendamento.agendaRetorno = false;
                            }
                        }

                        return(Request.CreateResponse(HttpStatusCode.OK, listAgendamento));
                    }
                    catch (Exception e)
                    {
                        return(Request.CreateResponse(HttpStatusCode.ExpectationFailed, "Houve um erro ao listar os Agendamentos."));
                    }
                    finally
                    {
                        conn.Close();
                    }
                }
            }
            catch (Exception e)
            {
                return(Request.CreateResponse(HttpStatusCode.ExpectationFailed, "Falha ao conectar no servidor: " + e.Message));
            }
        }