public void Autenticar(String eMailOuCelular, String senhaCriptografada)
        {
            AssegureQue.NaoEhNulo(eMailOuCelular, "EMail e / ou celular não informado (1)");
            AssegureQue.NaoEhVazio(eMailOuCelular, "EMail e / ou celular não informado (2)");

            var usuario = new Usuario {
                EMail = eMailOuCelular, Celular = eMailOuCelular
            };
            var usuarios = Usuarios.ObterPor(usuario);

            AssegureQue.NaoEhVazio(usuarios, "Usuário não encontrado com este eMail e / ou celular");
            AssegureQue.EhVerdadeiro(usuarios.Count() == 1, "EMail e / ou celular inválido. Confira as informações e tente novamente");

            usuario = Usuarios.ObterPorIdComSenhas(usuarios.First().Id);
            AssegureQue.EhVerdadeiro(usuario.ConfirmarSenha(senhaCriptografada), "A senha informada não confere!");
        }
        public void TrocarSenha(String eMail, String celular, String senhaAntigaCriptografada, String novaSenhaCriptografada, String confirmaNovaSenhaCriptografada)
        {
            var usuarios = Usuarios.ObterPor(new Usuario {
                EMail = eMail, Celular = celular
            });

            AssegureQue.NaoEhNulo(usuarios, "Não foi encontrado um usuário cadastrado com este eMail e / ou celular");
            AssegureQue.EhVerdadeiro(usuarios.Count() == 1, "EMail e / ou celular inválido. Confira as informações e tente novamente");

            var usuario = usuarios.First();

            usuario.Preencher(Usuarios.BuscarSenhas(usuario.Id));
            var senha = usuario.TrocarSenha(senhaAntigaCriptografada, novaSenhaCriptografada, confirmaNovaSenhaCriptografada);

            Usuarios.Gravar(senha);
        }