public async Task <IActionResult> Edit(Guid id) { var user = await adminService.GetUserByObjectIdAsync(id); List <CertificateModel> certs = null; if (user.KeyVaultUrl != null) { certs = await keyVaultAdminService.GetCertificatesInVaultAsync(user.KeyVaultUrl); } if (certs == null) { certs = new List <CertificateModel>(); } var model = new UpdateCreateSignServiceUserModel { ObjectId = user.ObjectId.Value, Username = user.UserPrincipalName, Configured = user.SignServiceConfigured ?? false, CertificateName = user.KeyVaultCertificateName, DisplayName = user.DisplayName, KeyVaultUrl = user.KeyVaultUrl, TimestampUrl = user.TimestampUrl, // Only show enabled ones here CertificatesModels = certs.Where(cm => cm.Attributes?.Enabled == true).ToList() }; return(View(model)); }
// GET: KeyVault/Details/5 public async Task <IActionResult> Details(string id) { try { var vault = await keyVaultAdminService.GetVaultAsync(id); var certificates = await keyVaultAdminService.GetCertificatesInVaultAsync(vault.VaultUri); // See if there are any pending ops var ops = certificates.Select(c => new { cert = c, operation = keyVaultAdminService.GetCertificateOperation(vault.VaultUri, c.Name) }).ToList(); await Task.WhenAll(ops.Select(a => a.operation)); foreach (var op in ops) { op.cert.Operation = op.operation.Result; // completed, safe } var model = new KeyVaultDetailsModel { Vault = vault, CertificateModels = ops.Select(a => a.cert).ToList() }; return(View(model)); } catch (Exception) { ViewBag.Id = id; return(View("Details.Error")); } }