/// <summary>
        /// Loga o usuário na aplicação
        /// </summary>
        private void DesbloquearUsuario()
        {
            StringBuilder strValidacao = ValidarCampos();

            // Verifica se as informações do usuário são válidas
            if (strValidacao.Length > 0)
            {
                MessageBox.Show(strValidacao.ToString(), "Sessão", MessageBoxButton.OK, MessageBoxImage.Information);
            }
            else
            {
                // Define os dados do Login
                Contrato.EntradaUsuario usuario = new Contrato.EntradaUsuario();
                usuario.Usuario = new Contrato.Usuario();
                usuario.Usuario.Login = txtLogin.Conteudo;
                usuario.Usuario.Senha = Comum.Util.CriptografiaMD5(txtSenha.Conteudo);
                usuario.Chave = Comum.Util.Chave;

                // Chama o serviço para logar na aplicação
                Servico.BrasilDidaticosClient servBrasilDidaticos = new Servico.BrasilDidaticosClient(Comum.Util.RecuperarNomeEndPoint());
                Contrato.RetornoUsuario retUsuario = servBrasilDidaticos.UsuarioLogar(usuario);
                servBrasilDidaticos.Close();

                // Verifica se o usuário logou com sucesso
                if (retUsuario.Codigo == Contrato.Constantes.COD_RETORNO_SUCESSO || retUsuario.Codigo == Contrato.Constantes.COD_REGISTRO_DUPLICADO)
                {
                    // Se o usuáio possui permissão para desbloqueio
                    if (_sessao != null &&
                        Comum.Util.ValidarPermissao(retUsuario.Usuarios.First(), Comum.Constantes.TELA_SESSAO, Comum.Constantes.PERMISSAO_DESBLOQUEAR_USUARIO) &&
                        retUsuario.Usuarios.First().Empresa.Id == _usuario.Empresa.Id)
                    {
                        servBrasilDidaticos = new Servico.BrasilDidaticosClient(Comum.Util.RecuperarNomeEndPoint());
                        servBrasilDidaticos.SessaoExcluir(new Contrato.Sessao() { Login = _sessao.Login, Chave = _sessao.Chave });
                        servBrasilDidaticos.Close();
                        SessaoDesbloqueada = true;

                        // Se está duplicado significa que o usuário já está logado, então não apaga a sua sessão
                        if (retUsuario.Codigo != Contrato.Constantes.COD_REGISTRO_DUPLICADO)
                        {
                            // Chama o serviço para apagar a sessão do usuário que possui permissão para o desbloqueio
                            servBrasilDidaticos = new Servico.BrasilDidaticosClient(Comum.Util.RecuperarNomeEndPoint());
                            servBrasilDidaticos.SessaoExcluir(new Contrato.Sessao() { Login = usuario.Usuario.Login, Chave = usuario.Chave });
                            servBrasilDidaticos.Close();
                        }

                        // Fecha a tela de Sessão
                        this.Close();
                    }
                }

                if (!SessaoDesbloqueada)
                {
                    MessageBox.Show(string.Format("Não foi possível desbloquear a sessão do usuário!\nPor favor, verifique o usuário ou a senha informada!", txtLogin.Conteudo), "Sessão", MessageBoxButton.OK, MessageBoxImage.Information);
                }
            }
        }
        /// <summary>
        /// Loga o usuário na aplicação
        /// </summary>
        private void Logar()
        {
            StringBuilder strValidacao = ValidarCampos();

            // Verifica se as informações do usuário são válidas
            if (strValidacao.Length > 0)
            {
                MessageBox.Show(strValidacao.ToString(), "Login", MessageBoxButton.OK, MessageBoxImage.Information);
            }
            else
            {
                // Define se a sessão foi desbloqueada. Por padrão sempre é verdadeiro
                bool sessaoDesbloqueda = false;

                // Define os dados do Login
                Contrato.EntradaUsuario usuario = new Contrato.EntradaUsuario();
                usuario.Usuario = new Contrato.Usuario();
                usuario.Usuario.Login = txtLogin.Conteudo;
                usuario.Usuario.Senha = Comum.Util.CriptografiaMD5(txtSenha.Conteudo);
                usuario.Chave = Comum.Util.Chave;

                // Chama o serviço para logar na aplicação
                Servico.BrasilDidaticosClient servBrasilDidaticos = new Servico.BrasilDidaticosClient(Comum.Util.RecuperarNomeEndPoint());
                Contrato.RetornoUsuario retUsuario = servBrasilDidaticos.UsuarioLogar(usuario);
                servBrasilDidaticos.Close();

                // Verifica se o usuário já está logado
                if (retUsuario.Codigo == Contrato.Constantes.COD_REGISTRO_DUPLICADO)
                {
                    MessageBox.Show(string.Format("Sessão Bloqueada!\nPor favor, solicite ao responsável o desbloqueio de sua sessão!", txtLogin.Conteudo), "Login", MessageBoxButton.OK, MessageBoxImage.Information);

                    servBrasilDidaticos = new Servico.BrasilDidaticosClient(Comum.Util.RecuperarNomeEndPoint());
                    Contrato.RetornoSessao retSessao = servBrasilDidaticos.SessaoListar(new Contrato.Sessao() { Login = usuario.Usuario.Login });
                    servBrasilDidaticos.Close();

                    WSessao wSessao = new WSessao();
                    wSessao.Usuario = retUsuario.Usuarios.FirstOrDefault();
                    wSessao.Sessao = retSessao.Sessoes.FirstOrDefault();
                    wSessao.ShowDialog();
                    sessaoDesbloqueda = wSessao.SessaoDesbloqueada;
                }

                // Verifica se o usuário foi desbloqueado
                if (sessaoDesbloqueda)
                {
                    // Loga novamenente na aplicação
                    servBrasilDidaticos = new Servico.BrasilDidaticosClient(Comum.Util.RecuperarNomeEndPoint());
                    retUsuario = servBrasilDidaticos.UsuarioLogar(usuario);
                    servBrasilDidaticos.Close();
                }

                // Verifica se o usuário logou com sucesso
                if (retUsuario.Codigo == Contrato.Constantes.COD_RETORNO_SUCESSO)
                {
                    // Guarda os dados do usuário Logado
                    Comum.Util.UsuarioLogado = retUsuario.Usuarios.First();
                    // Esconde a tela de login
                    this.Visibility = System.Windows.Visibility.Hidden;
                    // Recupera os parâmetros
                    Comum.Parametros.CarregarParametros();
                    //// Entra na tela principal
                    WPrincipal wPrincipal = new WPrincipal();
                    wPrincipal.ShowDialog();
                }
                else if (retUsuario.Codigo == Contrato.Constantes.COD_RETORNO_VAZIO)
                {
                    MessageBox.Show(string.Format("Não foi possível entrar na aplicação!\nPor favor, verifique o usuário ou a senha informada!", txtLogin.Conteudo), "Login", MessageBoxButton.OK, MessageBoxImage.Information);
                }
                else
                    MessageBox.Show(retUsuario.Mensagem, "Login", MessageBoxButton.OK, MessageBoxImage.Information);
            }
        }