public async Task <IActionResult> ArchiveCredential([Bind("ProjectId, AssetId")] ArchivePasswordViewModel archivePasswordViewModel) { if (archivePasswordViewModel == null) { throw new ArgumentNullException(nameof(archivePasswordViewModel)); } if (ModelState.IsValid) { if (archivePasswordViewModel.ProjectId < 1) { throw new ArgumentNullException(nameof(archivePasswordViewModel.ProjectId)); } if (archivePasswordViewModel.AssetId < 1) { throw new ArgumentNullException(nameof(archivePasswordViewModel.AssetId)); } // Check permissions in service by retrieving the proejct var project = await _projectsService.GetProject(archivePasswordViewModel.ProjectId); if (project == null) { return(NotFound()); } // get the current user IP string accessIpAddress = HttpContext?.Connection?.RemoteIpAddress?.ToString(); await _assetService.ArchiveAssetAsync( archivePasswordViewModel.ProjectId, archivePasswordViewModel.AssetId, accessIpAddress); return(RedirectToAction(nameof(Details), new { id = archivePasswordViewModel.ProjectId })); } return(View()); }