public void PrimeiroAcesso()
        {
            if (!ChaveAtivacao.Validate(Request["chave"], Request["senha"]))
            {
                Didox.Business.Session.Add("[Erro]PrimeiroAcesso", "Chave de acesso inválida");
                Response.Redirect(Pagina.Site() + "/" + Pagina.GetAreaCorrenteComPagina());
                return;
            }

            Response.Redirect(Pagina.Site() + "/" + Pagina.GetAreaCorrente(false) + "/cadastro");
        }
        public void LogIn()
        {
            Usuario usuario = new Usuario();

            if (!usuario.Logon(Request["login"], Request["senha"]))
            {
                Didox.Business.Session.Add("[Erro]Login", "Usuário e senha inválido");
                Response.Redirect(Pagina.Site() + "/" + Pagina.GetAreaCorrenteComPagina());
                return;
            }

            Response.Redirect(Pagina.Site() + "/" + Pagina.GetAreaCorrente(false));
        }
        public void AlterarSenha()
        {
            Usuario usuarioCurrent = Usuario.Current();
            Usuario usuario        = new Usuario();

            if (string.IsNullOrEmpty(Request["senhaAntiga"]))
            {
                Didox.Business.Session.Add("[ERRO]AlterarSenha", "Senha antiga obrigatória.");
                Response.Redirect(Pagina.Site() + "/" + Pagina.GetAreaCorrenteComPagina());
                return;
            }

            if (string.IsNullOrEmpty(Request["novaSenha"]))
            {
                Didox.Business.Session.Add("[ERRO]AlterarSenha", "Nova senha obrigatória.");
                Response.Redirect(Pagina.Site() + "/" + Pagina.GetAreaCorrenteComPagina());
                return;
            }

            if (string.IsNullOrEmpty(Request["confirmacaoSenha"]))
            {
                Didox.Business.Session.Add("[ERRO]AlterarSenha", "Confirmação de senha obrigatória.");
                Response.Redirect(Pagina.Site() + "/" + Pagina.GetAreaCorrenteComPagina());
                return;
            }

            usuario.Senha = Request["senhaAntiga"];
            usuario.Login = usuarioCurrent.Login;
            usuario.Get();

            if (usuario.IDUsuario == null)
            {
                Didox.Business.Session.Add("[ERRO]AlterarSenha", "Senha antiga não confere.");
                Response.Redirect(Pagina.Site() + "/" + Pagina.GetAreaCorrenteComPagina());
                return;
            }
            else
            {
                if (Request["novaSenha"] != Request["confirmacaoSenha"])
                {
                    Didox.Business.Session.Add("[ERRO]AlterarSenha", "Confirmação de senha não é igual a senha nova.");
                    Response.Redirect(Pagina.Site() + "/" + Pagina.GetAreaCorrenteComPagina());
                    return;
                }

                usuarioCurrent.Senha = Request["novaSenha"];
                usuarioCurrent.Save();
                Didox.Business.Session.Add("[MSG]AlterarSenha", "Senha alterada com sucesso.");
                Response.Redirect(Pagina.Site() + "/" + Pagina.GetAreaCorrenteComPagina());
            }
        }
        public void AlterarCadastro()
        {
            Usuario usuario = Usuario.Current();

            try
            {
                usuario.Nome  = Request["nome"];
                usuario.Email = Request["email"];
                usuario.Ramal = Request["ramal"];

                /*
                 * var pessoa = usuario.Fisica;
                 * foreach (var campo in pessoa.Tabela.Campos)
                 * {
                 *  try
                 *  {
                 *      campo.Valor(pessoa).SetValor(Request[campo.Nome]);
                 *      campo.Valor(pessoa).Save();
                 *  }
                 *  catch (Exception err)
                 *  {
                 *      campo.HasError = true;
                 *      throw err;
                 *  }
                 * }
                 */

                usuario.Save();
                Didox.Business.Session.Add("[MSG]AlterarCadastro", "Alteração concluída.");
            }
            catch (Exception err)
            {
                Didox.Business.Session.Add("[ERRO]AlterarCadastro", err.Message);
            }

            Response.Redirect(Pagina.Site() + "/" + Pagina.GetAreaCorrenteComPagina());
        }
        public void EsqueciSenha()
        {
            if (string.IsNullOrEmpty(Request["email"]))
            {
                Didox.Business.Session.Add("[EsqueciSenha]Login", "Email não preenchido.");
                Response.Redirect(Pagina.Site() + "/" + Pagina.GetAreaCorrenteComPagina());
                return;
            }

            Usuario usuario = new Usuario();

            usuario.Email = Request["email"];
            usuario.Get();

            if (usuario.IDUsuario == null)
            {
                Didox.Business.Session.Add("[EsqueciSenha]Login", "Email não encontrado.");
                Response.Redirect(Pagina.Site() + "/" + Pagina.GetAreaCorrenteComPagina());
                return;
            }

            if (!ConfiguracaoSenha.SenhaEstaCriptografada())
            {
                /*
                 * MailBox oEmail = new MailBox();
                 * oEmail.EmailTo = usuario.Email;
                 * oEmail.Subject = "Envio de senha - TradeVision";
                 * oEmail.Body = "<b>Envio de senha </b>" +
                 *  "<br><b>Login:</b> " + usuario.Login+
                 *  "<br><b>Senha:</b> " + usuario.Senha;
                 * oEmail.Send();
                 * */

                Didox.Business.Session.Add("[EsqueciSenha]Login", "Email enviado com sucesso.");
            }
            else
            {
                var resetSenhaToken = new ResetSenhaToken();
                resetSenhaToken.Usuario = usuario;
                resetSenhaToken.Token   = Guid.NewGuid().ToString();
                resetSenhaToken.Get();
                resetSenhaToken.Save();

                var url = Pagina.Site() + "/" + Pagina.GetAreaCorrente(false) + "/resetsenha?usuario=" + usuario.IDUsuario + "&token=" + resetSenhaToken.Token;

                // FIXME desabilitar depois coloquei de teste
                Response.Redirect(url);
                return;

                /*
                 * MailBox oEmail = new MailBox();
                 * oEmail.EmailTo = usuario.Email;
                 * oEmail.Subject = "Reset de senha - TradeVision";
                 * oEmail.Body = "<b>Por favor clique no link abaixo para resetar a sua senha </b>" +
                 *  "<br><a href=\"" + url + "\" >Resetar senha</a> ";
                 * oEmail.Send();
                 */

                Didox.Business.Session.Add("[EsqueciSenha]Login", "Um email de reset de senha foi enviado.");
            }

            Response.Redirect(Pagina.Site() + "/" + Pagina.GetAreaCorrenteComPagina());
        }