protected void CarregarAgenda()
        {
            // passa a data para o título, exemplo: "Domingo, 19 de fevereiro de 2016"
            txtTexto.Text = clData.SelectedDate.ToLongDateString();

            Agendamento_Model agenda = new Agendamento_Model();
            // carrega a agenda naquele dia
            Local_Model lmodel = new Local_Model();

            try
            {
                // pega do combobox se tiver algum local listado/selecionado
                if (ddLocal.Items.Count > 0)
                {
                    gvAgenda.DataSource = agenda.ListarDia(clData.SelectedDate, lmodel.Obter(Int32.Parse(ddLocal.SelectedValue)));
                }
                else // senão pega do cadastro do mediador logado
                {
                    gvAgenda.DataSource = agenda.ListarDia(clData.SelectedDate, lmodel.Obter(Master.GetLogado().id_local));
                }
                gvAgenda.DataBind();
                if (gvAgenda.Rows.Count > 0)
                {
                    gvAgenda.UseAccessibleHeader    = true;
                    gvAgenda.HeaderRow.TableSection = TableRowSection.TableHeader;
                }
            }
            catch { }
        }
        protected void btnAgendar_Click(object sender, EventArgs e)
        {
            if (ValidaAgendamento())
            {
                Agendamento_Model model = new Agendamento_Model();

                agendamento a = new agendamento();

                DateTime dDataInicial, dDataFinal;

                dDataInicial = DateTime.Parse(txtData.Value + " " + txtHoraInicial.Value + ":00");
                dDataFinal   = DateTime.Parse(txtData.Value + " " + txtHoraFinal.Value + ":00");

                a.descricao      = txtDescricaoAgendamento.Value;
                a.id_solicitacao = int.Parse(txtId.Value);
                a.data_inicial   = dDataInicial;
                a.data_final     = dDataFinal;
                a.id_mediador    = Master.GetLogado().id;

                Local_Model mLocal = new Local_Model();
                if (model.VerificarDisponibilidade(a, mLocal.Obter(Master.GetLogado().id_local)))
                {
                    if (model.Inserir(a))
                    {
                        Master.Sucesso("Horário agendado com sucesso.");
                        LimpaCamposAgendamento();
                        InsereDescSoli("Solicitação já agendada.");
                    }
                    else
                    {
                        Master.Alerta("Erro ao agendar horário. Erro: " + model.message);
                    }
                }
                else
                {
                    // se model.message estiver vazio, então ele retornou false pois o horário está vago,
                    // se nao, houve erro na consulta
                    if (model.message == "")
                    {
                        Master.Alerta("O horário escolhido já está agendado, selecione outro horário.");
                    }
                    else
                    {
                        Master.Alerta("Erro ao agendar horário. Erro: " + model.message);
                    }
                }
            }
        }
        protected void gvAgenda_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            // recupera a linha clicada no gridview
            int linha = Convert.ToInt32(e.CommandArgument);
            // recupera o id do agendamento na linha clicada
            Int32 id = (Int32)gvAgenda.DataKeys[linha].Value;

            if (e.CommandName == "Arquivar")
            {
                agendamento       a     = new agendamento();
                Agendamento_Model model = new Agendamento_Model();
                // busca o agendamento selecionado
                a = model.Obter(id);

                if (model.Arquivar(a))
                {
                    Master.Sucesso("Agendamento arquivado com sucesso");
                    CarregarAgenda();
                }
                else
                {
                    Master.Alerta("Erro ao excluír o agendamento. Erro:" + model.message);
                }
            }
            else if (e.CommandName == "Mediacao")
            {
                // deve abrir o cadastro de pessoa com o parametro AGEND
                // para quando abrir o cadastro ele salvar na sessão
                Response.Redirect("cad_pessoa.aspx?AGEND=" + id.ToString());
            }
            else if (e.CommandName == "Visualizar")
            {
                Mediacao_Model medm = new Mediacao_Model();
                try
                {
                    // visualiza a mediação correspondente a esse agendamento
                    Response.Redirect("detail_mediacao.aspx?ID=" + medm.ObterPorAgendamento(id).id.ToString());
                }
                catch (Exception error)
                {
                    Master.Alerta(error.Message);
                }
            }
        }