Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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());
        }