/// <summary> /// Converts Merge Review Set Job BEO to Update Review Set Task BEO /// </summary> /// <param name="reviewSetBeo"></param> /// <returns></returns> private static UpdateReviewSetTaskBEO ConvertToUTaskBeo(MergeReviewSetTaskBEO reviewSetBeo) { UpdateReviewSetTaskBEO reviewSet = new UpdateReviewSetTaskBEO { ReviewSetId = reviewSetBeo.ReviewSetId, ReviewSetName = reviewSetBeo.ReviewSetName, DatasetId = reviewSetBeo.DatasetId, NumberOfDocumentsPerSet = reviewSetBeo.NumberOfDocumentsPerSet, NumberOfReviewSets = reviewSetBeo.NumberOfReviewSets, StatusId = reviewSetBeo.StatusId, ReviewsetDescription = reviewSetBeo.ReviewsetDescription, StartDate = reviewSetBeo.StartDate, DueDate = reviewSetBeo.DueDate, ReviewSetLogic = reviewSetBeo.ReviewSetLogic, SplittingOption = reviewSetBeo.SplittingOption, SearchQuery = reviewSetBeo.SearchQuery, KeepDuplicates = reviewSetBeo.KeepDuplicates, KeepFamily = reviewSetBeo.KeepFamily, ReviewSetGroup = reviewSetBeo.ReviewSetGroup, AssignTo = reviewSetBeo.AssignTo, NumberOfDocuments = reviewSetBeo.NumberOfDocuments }; reviewSet.Documents.AddRange(reviewSetBeo.Documents); reviewSet.ReviewSetUserList.AddRange(reviewSetBeo.ReviewSetUserList); return(reviewSet); }
/// <summary> /// Atomic work 1) Delete search sub-system Data 2) Delete Vault Data 3) Delete EVMaster Data /// </summary> /// <param name="task"></param> /// <param name="jobParameters"></param> /// <returns></returns> protected override bool DoAtomicWork(MergeReviewSetTaskBEO task, MergeReviewSetJobBEO jobParameters) { bool output = false; try { string datasetId = task.DatasetId.ToString(CultureInfo.InvariantCulture); switch (task.Activity) { case Constants.Create: { /*since documents not needed for create reviewset, removing the docouments from the ReviewsetTaskBeo*/ List <RVWDocumentBEO> taskDocs = new List <RVWDocumentBEO>(); task.Documents.SafeForEach(taskDocs.Add); task.Documents.Clear(); CreateReviewSetTaskBEO createReviewSetTaskBeo = ConvertToCTaskBeo(task); createReviewSetTaskBeo.StatusId = 1; createReviewSetTaskBeo.Activity = Constants.Merge; createReviewSetTaskBeo.SplittingOption = Constants.Single; /*Create Reviewset*/ task.reviewSetId = ReviewSetService.CreateReviewSetJob(createReviewSetTaskBeo); taskDocs.SafeForEach(o => task.Documents.Add(o)); UpdateReviewSetTaskBEO updateReviewSetTaskBeo = ConvertToUTaskBeo(task); updateReviewSetTaskBeo.StatusId = 1; updateReviewSetTaskBeo.Activity = Constants.Merge; updateReviewSetTaskBeo.SplittingOption = Constants.Single; ReviewSetService.UpdateReviewSetJob(updateReviewSetTaskBeo); //Assigning the reviewset id to the documents IEnumerable <ReviewsetDocumentBEO> rsDocBeoList = PopulateReviewSetDocumentEntites(task.ReviewSetId, task.Documents); output = AddDocumentsBychunk(datasetId, task.reviewSetId, rsDocBeoList); output = true; break; } default: { if (task.Documents.Count > 0) { //Assigning the reviewset id to the documents IEnumerable <ReviewsetDocumentBEO> rsDocBeoList = PopulateReviewSetDocumentEntites(task.ReviewSetId, task.Documents); //Delete documents from vault and from search sub-system output = RemoveDocumentsBychunk(datasetId, task.reviewSetId, rsDocBeoList); } //Update Review set service - Archiving UpdateReviewSetTaskBEO updateReviewSetTaskBeo = ConvertToUTaskBeo(task); ReviewSetService.UpdateReviewSetJob(updateReviewSetTaskBeo); output = true; break; } } } catch (Exception ex) { ex.AddResMsg(ErrorCodes.ProblemInDoAtomicWork).Trace().Swallow(); } return(output); }