public bool Inserir(agendamento a)
        {
            // função para cadastrar agendamento
            try
            {
                // busca o mediador para ver o local dele
                Mediador_Model mModel = new Mediador_Model();
                mediador       med    = new mediador();
                med = mModel.Obter(a.id_mediador);

                // então registra o local do mediador logado no agendamento
                a.id_local = med.id_local;

                a.ativo = true;

                Table <agendamento> tb = getTable();
                tb.InsertOnSubmit(a);
                tb.Context.SubmitChanges();

                return(true);
            }
            catch (Exception e)
            {
                message = e.Message;
                return(false);
            }
        }
        public bool Inserir(agendamento a)
        {
            // função para cadastrar agendamento
            try
            {
                // busca o mediador para ver o local dele
                Mediador_Model mModel = new Mediador_Model();
                mediador med = new mediador();
                med = mModel.Obter(a.id_mediador);

                // então registra o local do mediador logado no agendamento
                a.id_local = med.id_local;

                a.ativo = true;

                Table<agendamento> tb = getTable();
                tb.InsertOnSubmit(a);
                tb.Context.SubmitChanges();

                return true;
            }
            catch (Exception e)
            {
                message = e.Message;
                return false;
            }
        }
        protected void btnSalvar_Click(object sender, EventArgs e)
        {
            //se a função valida retornar True, então permite cadastrar ou alterar o registro
            if (Valida())
            {
                mediador med = new mediador();

                med.nome = txtNome.Value;
                med.patente = txtPatente.Value;
                med.id_local = Int32.Parse(ddLocal.SelectedValue);
                med.nivel_permissao = Int32.Parse(ddNivelPermissao.SelectedValue);
                med.usuario = txtUsuario.Value;
                med.senha = txtSenha.Value;
                med.ativo = cbbAtivo.Checked;
                med.RE = txtRE.Value;
                med.alcance = txtAlcance.Value;

                Mediador_Model model = new Mediador_Model();

                // se tiver ID preenche o parâmetro
                if (txtID.Text != "Novo")
                    med.id = int.Parse(txtID.Text);

                if (txtID.Text != "Novo")
                {
                    if (txtSenha.Value == "")
                    {   // SE for uma alteração E a senha não for digitada,
                        // ENTÃO busca a senha que está no cadastro, para mantê-la no registro
                        med.senha = model.Obter(med.id).senha;
                    }
                }

                // faz a inserção ou atualização do cadastro
                if (model.InserirAtualizar(med))
                {
                    // busca o id no banco pois a procedure cadMediador não retorna o id do registro
                    txtID.Text = model.ObterUsuario(med.usuario).id.ToString();
                    Master.Sucesso("Registro salvo com sucesso.");
                }
                else // model.message contém a mensagem do erro gerado
                    Master.Alerta("Erro ao salvar o registro. Erro: "+model.message);
            }
        }
        protected void btnEntrar_Click(object sender, EventArgs e)
        {
            MD5 m = MD5.Create();

            String hash = GetMd5Hash(m, txtSenha.Value);

            Mediador_Model model = new Mediador_Model();
            mediador med = model.ObterUsuarioLogin(txtUsuario.Value, hash);

            if (med != null)
            {
                Session["med"] = med;
                Response.Redirect("index.aspx");
            }
            else
            {
                AlertaLogin("Usuário ou senha inválidos!");
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Master.GetNivelPermissao() < Mediador_Model.PERM_ADMIN)
            {
                Response.Redirect("index.aspx");
            }

            if (!IsPostBack)
            {
                // tamanho dos campos de acordo com o banco de dados
                txtNome.MaxLength = 100;
                txtPatente.MaxLength = 50;
                txtUsuario.MaxLength = 50;
                txtSenha.MaxLength = 50;
                txtConfirmarSenha.MaxLength = 50;
                txtRE.MaxLength = 8;
                txtAlcance.MaxLength = 9;

                // carrega nucleos de mediacao
                Local_Model l = new Local_Model();
                ddLocal.DataSource = l.Listar(Master.GetAlcancePermissao());
                ddLocal.DataValueField = "id";
                ddLocal.DataTextField = "descricao";
                ddLocal.DataBind();
                ddLocal.SelectedIndex = 0;

                cbbAtivo.Checked = true;

                // declara ID e verifica se existe ID no txtID ou no endereço
                int id = 0;

                if (txtID.Text != "Novo")
                {
                    // recupera o id
                    try
                    {
                        id = int.Parse(txtID.Text);
                    }
                    catch (Exception)
                    {
                        Master.Alerta("Erro ao carregar o cadastro.");
                    }
                }

                if (Request.QueryString["ID"] != null)
                {
                    //recupera o id
                    id = int.Parse(Request.QueryString["ID"]);
                    txtID.Text = id.ToString();
                }

                // se houver ID informado, então carrega o registro do ID informado
                if (id != 0)
                {
                    try
                    {
                        // declara o objeto model
                        Mediador_Model model = new Mediador_Model();
                        //recupera o id informado
                        mediador med = model.Obter(id);

                        //preencher caixas de texto com valores
                        txtID.Text = med.id.ToString();
                        txtRE.Value = med.RE;
                        txtNome.Value = med.nome;
                        txtPatente.Value = med.patente;
                        ddLocal.SelectedValue = med.id_local.ToString();
                        ddNivelPermissao.SelectedValue = med.nivel_permissao.ToString();
                        txtAlcance.Value = med.alcance;
                        txtUsuario.Value = med.usuario;
                        txtSenha.Value = "";
                        txtConfirmarSenha.Value = "";
                        cbbAtivo.Checked = med.ativo;

                    }
                    catch (Exception)
                    {
                        Master.Alerta("Registro não encontrado.");
                    }
                }
                else
                {
                    txtID.Text = "Novo";
                }
            }
        }
        protected bool Valida()
        {
            if (txtNome.Value == "")
            {
                Master.Alerta("Nome inválido ou não informado");
                return false;
            }
            mediador m = new mediador();
            Mediador_Model model = new Mediador_Model();

            if (txtUsuario.Value == "")
            {
                Master.Alerta("Usuário inválido ou não informado");
                return false;
            }
            // APENAS VERIFICA SE EXISTE SE NÃO FOR EDIÇÃO
            if (txtID.Text == "Novo")
            {
                // BUSCAR O MEDIADOR E VERIFICAR SE EXISTE COM ESSE NOME DE USUARIO, SE EXISTER FALA QUE USUÁRIO JA É UTILIZADO
                m = model.ObterUsuario(txtUsuario.Value);
                if (m.id != 0)
                {
                    Master.Alerta("Usuário já cadastrado, escolha um nome de usuário diferente.");
                    return false;
                }
                if (txtSenha.Value == "")
                {
                    Master.Alerta("Senha inválida ou não informada");
                    return false;
                }
            }
            if (txtConfirmarSenha.Value != txtSenha.Value)
            {
                Master.Alerta("As senhas não conferem");
                return false;
            }

            return true;
        }