public void Gravar(Senha senha)
        {
            var execucao = Transacao.Proteger((transacao, log) =>
            {
                senha.Id = Conexao.ExecuteScalar <Int64>(cInsertIntoSenha, senha, transacao);
                return(senha);
            });

            AssegureQue.NaoHouveErro(execucao, "Houve um problema ao Gravar Usuario");
        }
        public void Gravar(Usuario usuario)
        {
            usuario.EhValido();
            var execucao = Transacao.Proteger((transacao, log) =>
            {
                var senha  = usuario.Senhas.FirstOrDefault();
                usuario.Id = Conexao.ExecuteScalar <Int32>(cInsertIntoUsuario + Conexao.RDBMS.CmdSqlUltimoIdGerado, usuario, transacao);
                senha.Id   = Conexao.ExecuteScalar <Int64>(cInsertIntoSenha + Conexao.RDBMS.CmdSqlUltimoIdGerado, senha, transacao);
                return(usuario);
            });

            AssegureQue.NaoHouveErro(execucao, "Houve um problema ao Gravar Usuario");
        }