ShowAccountCommand: Adapt to upstream API changes related to external Ids

Change-Id: Iedf1e38452529cc912b03781ab3faef6c37a340e
diff --git a/src/main/java/com/googlesource/gerrit/plugins/adminconsole/ShowAccountCommand.java b/src/main/java/com/googlesource/gerrit/plugins/adminconsole/ShowAccountCommand.java
index aba4b67..9cd534d 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/adminconsole/ShowAccountCommand.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/adminconsole/ShowAccountCommand.java
@@ -22,13 +22,14 @@
 import com.google.gerrit.extensions.restapi.AuthException;
 import com.google.gerrit.reviewdb.client.Account;
 import com.google.gerrit.reviewdb.client.Account.Id;
-import com.google.gerrit.reviewdb.client.AccountExternalId;
 import com.google.gerrit.reviewdb.server.ReviewDb;
 import com.google.gerrit.server.IdentifiedUser;
 import com.google.gerrit.server.account.AccountResolver;
 import com.google.gerrit.server.account.AccountResource;
 import com.google.gerrit.server.account.GetGroups;
 import com.google.gerrit.server.account.GetSshKeys;
+import com.google.gerrit.server.account.externalids.ExternalId;
+import com.google.gerrit.server.account.externalids.ExternalIds;
 import com.google.gerrit.sshd.CommandMetaData;
 import com.google.gerrit.sshd.SshCommand;
 import com.google.gwtorm.server.OrmException;
@@ -68,18 +69,21 @@
   private final Provider<GetGroups> accountGetGroups;
   private final IdentifiedUser.GenericFactory userFactory;
   private final Provider<GetSshKeys> getSshKeys;
+  private final ExternalIds externalIds;
 
   @Inject
   ShowAccountCommand(AccountResolver accountResolver,
       Provider<GetGroups> accountGetGroups,
       IdentifiedUser.GenericFactory userFactory,
       Provider<GetSshKeys> getSshKeys,
-      SchemaFactory<ReviewDb> schema) {
+      SchemaFactory<ReviewDb> schema,
+      ExternalIds externalIds) {
     this.accountResolver = accountResolver;
     this.accountGetGroups = accountGetGroups;
     this.userFactory = userFactory;
-    this.schema = schema;
     this.getSshKeys = getSshKeys;
+    this.schema = schema;
+    this.externalIds = externalIds;
   }
 
   @Override
@@ -121,14 +125,14 @@
         stdout.println("External Ids:");
         stdout.println(String
             .format("%-50s %s", "Email Address:", "External Id:"));
-        for (AccountExternalId accountExternalId : db.accountExternalIds()
-            .byAccount(account.getId())) {
-          stdout.println(String.format("%-50s %s",
-              (accountExternalId.getEmailAddress() == null ? ""
-                  : accountExternalId.getEmailAddress()), accountExternalId
-                  .getExternalId()));
+        try {
+          for (ExternalId externalId : externalIds.byAccount(account.getId())) {
+            stdout.println(String.format("%-50s %s",
+                (externalId.email() == null ? "" : externalId.email()), externalId.key()));
+          }
+        } catch (IOException e) {
+          throw new UnloggedFailure(1, "Error getting external Ids: " + e.getMessage(), e);
         }
-
         if (showKeys) {
           stdout.println("");
           stdout.println("Public Keys:");