private async Task DeleteJobErrors(IServicesMgr svcManager, ExecutionIdentity identityCurrentUser, Int32 workspaceArtifactId, Int32 jobArtifactID) { var jobErrorArtifactIDs = await ArtifactQueries.QueryJobErrors(svcManager, identityCurrentUser, workspaceArtifactId, jobArtifactID, Constant.Guids.ObjectType.ImportUtilityJobErrors, Constant.Guids.Field.ImportUtilityJobErrors.ImportUtilityJob); if (jobErrorArtifactIDs != null & jobErrorArtifactIDs.Any()) { var artifactTypeId = SqlQueryHelper.RetrieveArtifactTypeIdByGuidAsync(DbContext, Constant.Guids.ObjectType.ImportUtilityJobErrors).Result; await ArtifactQueries.DeleteJobErrors(svcManager, identityCurrentUser, workspaceArtifactId, jobErrorArtifactIDs.ToList(), artifactTypeId); } }
public async Task <Response> ExecutePreCascadeDelete() { var response = new Response { Success = true, Message = string.Empty }; try { var dtExportJobErrors = SqlQueryHelper.RetrieveJobErrorsFromTempTable(DbContext, TempTableName); if (dtExportJobErrors != null && dtExportJobErrors.Rows.Count > 0) { var jobArtifactIDs = dtExportJobErrors.Rows.OfType <DataRow>().Select(dr => dr.Field <Int32>("ArtifactID")).ToList(); var setStatus = await ArtifactQueries.RetrieveRdoJobStatusAsync(SvcManager, WorkspaceArtifactId, IdentityCurrentUser, jobArtifactIDs[0]); if (!string.IsNullOrEmpty(setStatus)) { switch (setStatus) { case Constant.Status.Job.SUBMITTED: case Constant.Status.Job.IN_PROGRESS_MANAGER: case Constant.Status.Job.IN_PROGRESS_WORKER: case Constant.Status.Job.COMPLETED_MANAGER: case Constant.Status.Job.CANCELREQUESTED: case Constant.Status.Job.RETRY: response.Success = false; response.Exception = new SystemException(Constant.ErrorMessages.NotSupportedJobDeletion); break; case Constant.Status.Job.CANCELLED: case Constant.Status.Job.COMPLETED: case Constant.Status.Job.COMPLETED_WITH_ERRORS: case Constant.Status.Job.ERROR: case Constant.Status.Job.NEW: Logger.LogDebug($"{Constant.Names.ApplicationName} - Delete Export Job button clicked."); if (jobArtifactIDs.Count > 0) { Logger.LogDebug($"{Constant.Names.ApplicationName} - Delete Export Job button click, {jobArtifactIDs.Count} Export Job Errors found."); var jobErrorArtifactIDs = await ArtifactQueries.QueryJobErrors(SvcManager, IdentityCurrentUser, WorkspaceArtifactId, jobArtifactIDs[0], Constant.Guids.ObjectType.ExportUtilityJobErrors, Constant.Guids.Field.ExportUtilityJobErrors.ExportUtilityJob); var errorArtifactIDs = jobErrorArtifactIDs as int[] ?? jobErrorArtifactIDs.ToArray(); if (jobErrorArtifactIDs != null & errorArtifactIDs.Any()) { var artifactTypeId = SqlQueryHelper.RetrieveArtifactTypeIdByGuidAsync(DbContext, Constant.Guids.ObjectType.ExportUtilityJobErrors).Result; await ArtifactQueries.DeleteJobErrors(SvcManager, IdentityCurrentUser, WorkspaceArtifactId, jobErrorArtifactIDs.ToList(), artifactTypeId); Logger.LogDebug($"{Constant.Names.ApplicationName} - Delete Export Job button click, {jobArtifactIDs.Count} Export Job Errors deleted."); } } else { Logger.LogDebug($"{Constant.Names.ApplicationName} - Delete Export Job button click, no Export Job Errors found."); } Logger.LogDebug($"{Constant.Names.ApplicationName} - Delete Export Job button click action completed."); break; } } } } catch (Exception ex) { response.Success = false; response.Exception = new SystemException($@"{Constant.ErrorMessages.DefaultErrorPrepend}, Error Message: {ex}"); } return(response); }