Exemplo n.º 1
0
        public async Task <IActionResult> DeleteDataset(string ownerId, string repoId, string datasetId, bool confirmed = false)
        {
            DashboardViewModel.Area = "datasets";
            DashboardViewModel.SelectedDatasetId = datasetId;
            DashboardViewModel.Heading           = $"Delete Dataset: {datasetId}";
            if (!confirmed)
            {
                return(View("Dashboard/DeleteDataset", this.DashboardViewModel));
            }

            // Validate user name and authentication status
            var userId = User?.Identity?.Name;

            if (string.IsNullOrEmpty(userId))
            {
                Log.Debug("DeleteDataset: No value found for user principal name");
                return(Unauthorized());
            }

            if (User?.Identity?.IsAuthenticated != true)
            {
                Log.Debug("DeleteDataset: User identity is not authenticated");
                return(Unauthorized());
            }

            var jobInfo = await _jobStore.SubmitDeleteJobAsync(new DeleteJobRequestInfo
            {
                UserId       = userId,
                OwnerId      = ownerId,
                RepositoryId = repoId,
                DatasetId    = datasetId,
                DatasetIri   = _uriService.GetDatasetIdentifier(ownerId, repoId, datasetId)
            });

            if (jobInfo != null)
            {
                return(RedirectToRoute("RepoJobs", new { ownerId, repoId, jobInfo.JobId }));
            }
            ViewBag.StatusMessage = "Failed to delete dataset {datasetId}";
            return(View("Dashboard/DeleteDataset", this.DashboardViewModel));
        }