public async Task <IActionResult> ArchiveCredential(int projectId, int assetId) { if (projectId < 1) { throw new ArgumentNullException(nameof(projectId)); } if (assetId < 1) { throw new ArgumentNullException(nameof(assetId)); } // get project if current user has permission var project = await _projectsService.GetProject(projectId); if (project == null) { return(NotFound()); } // get the current user IP string accessIpAddress = HttpContext?.Connection?.RemoteIpAddress?.ToString(); var asset = await _assetService.GetAssetAsync(project.Id, assetId, accessIpAddress); var viewModel = new ArchivePasswordViewModel(); viewModel.ProjectTitle = project.Title; viewModel.ProjectId = project.Id; viewModel.AssetId = asset.Id; viewModel.AssetTitle = asset.Title; return(View(viewModel)); }
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()); }