public static kCura.Relativity.Client.DTOs.Artifact Create(IServicesMgr svcMgr, ExecutionIdentity identity,
                                                                   Int32 workspaceArtifactId, String processingSetName, Int32 processingProfileArtifactId, string emailRecipients)
        {
            kCura.Relativity.Client.DTOs.WriteResultSet <kCura.Relativity.Client.DTOs.RDO> results;
            using (var client = svcMgr.CreateProxy <IRSAPIClient>(identity))
            {
                client.APIOptions.WorkspaceID = workspaceArtifactId;
                var r = new kCura.Relativity.Client.DTOs.RDO
                {
                    ArtifactTypeGuids = new List <Guid> {
                        Helpers.Constants.Guids.ObjectType.ProcessingSet
                    }
                };
                r.Fields.Add(new kCura.Relativity.Client.DTOs.FieldValue(Helpers.Constants.Guids.Fields.ProcessingSet.Name,
                                                                         processingSetName));
                r.Fields.Add(
                    new kCura.Relativity.Client.DTOs.FieldValue(Helpers.Constants.Guids.Fields.ProcessingSet.RelatedProcessingProfile,
                                                                processingProfileArtifactId));
                r.Fields.Add(new kCura.Relativity.Client.DTOs.FieldValue(
                                 Helpers.Constants.Guids.Fields.ProcessingSet.DiscoverStatus,
                                 Helpers.Constants.Guids.Choices.ProcessingSet.DiscoverStatusNotStarted));
                r.Fields.Add(
                    new kCura.Relativity.Client.DTOs.FieldValue(Helpers.Constants.Guids.Fields.ProcessingSet.InventoryStatus,
                                                                Helpers.Constants.Guids.Choices.ProcessingSet.InventoryStatusNotStarted));
                r.Fields.Add(new kCura.Relativity.Client.DTOs.FieldValue(
                                 Helpers.Constants.Guids.Fields.ProcessingSet.PublishStatus,
                                 Helpers.Constants.Guids.Choices.ProcessingSet.PublishStatusNotStarted));

                if (emailRecipients != String.Empty)
                {
                    r.Fields.Add(new kCura.Relativity.Client.DTOs.FieldValue(Helpers.Constants.Guids.Fields.ProcessingSet.EmailRecipients,
                                                                             emailRecipients));
                }

                results = client.Repositories.RDO.Create(r);
                var res = new Response <kCura.Relativity.Client.DTOs.Artifact>
                {
                    Results = results.Results.Any() ? results.Results.FirstOrDefault().Artifact : null,
                    Success = results.Success,
                    Message =
                        MessageFormatter.FormatMessage(results.Results.Select(x => x.Message).ToList(), results.Message, results.Success)
                };

                if (res.Success)
                {
                    return(res.Results);
                }
                throw new Exception(res.Message.ToString());
            }
        }
Example #2
0
        public static void UpdateErrorMessage(IRSAPIClient connection, int artifactID, string errorMessage)
        {
            kCura.Relativity.Client.DTOs.RDO job = new kCura.Relativity.Client.DTOs.RDO(new Guid(Helper.Constant.OBJECT_TYPE_FILE_VALIDATION_GUID), artifactID);
            job.Fields.Add(new kCura.Relativity.Client.DTOs.FieldValue(new Guid(Helper.Constant.FIELD_JOB_ERROR_MESSAGE_GUID), errorMessage));
            kCura.Relativity.Client.DTOs.ResultSet <kCura.Relativity.Client.DTOs.RDO> updateResults = new kCura.Relativity.Client.DTOs.ResultSet <kCura.Relativity.Client.DTOs.RDO>();

            try
            {
                updateResults = connection.Repositories.RDO.Update(job);
                if (!updateResults.Success)
                {
                    throw new Exception(FormatError(updateResults));
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public override Response Execute()
        {
            Response eventRes = new Response()
            {
                Success = true,
                Message = String.Empty
            };

            try
            {
                System.Data.SqlClient.SqlParameter artifactId = new System.Data.SqlClient.SqlParameter("@artifacId", System.Data.SqlDbType.Int);
                artifactId.Value = this.ActiveArtifact.ArtifactID;
                int activeWorkspaceId = this.Helper.GetActiveCaseID();
                this.Helper.GetDBContext(activeWorkspaceId).ExecuteNonQuerySQLStatement(DELETE_JOBS_COMMENTS_LINKED, new System.Data.SqlClient.SqlParameter[] { artifactId });
                int currentUserId = this.Helper.GetAuthenticationManager().UserInfo.ArtifactID;

                using (kCura.Relativity.Client.IRSAPIClient client =
                           this.Helper.GetServicesManager().CreateProxy <kCura.Relativity.Client.IRSAPIClient>(Relativity.API.ExecutionIdentity.System))
                {
                    client.APIOptions.WorkspaceID = this.Helper.GetActiveCaseID();
                    kCura.Relativity.Client.DTOs.RDO comment = client.Repositories.RDO.ReadSingle(ActiveArtifact.ArtifactID);
                    int commentUserId = comment.SystemCreatedBy.ArtifactID;

                    if (!currentUserId.Equals(commentUserId))
                    {
                        throw new DeleteAnotherComment();
                    }
                }
            }
            catch (Exception ex)
            {
                eventRes.Success   = false;
                eventRes.Exception = new SystemException("ProcessPreDeleteFailure failure: "
                                                         + ex.Message);
            }


            return(eventRes);
        }
Example #4
0
        public override Response Execute()
        {
            Artifact   activeArtifact    = this.ActiveArtifact;
            int        activeWorkspaceId = this.Helper.GetActiveCaseID();
            string     currentUser       = this.Helper.GetAuthenticationManager().UserInfo.FullName;
            IDBContext dbcontext         = this.Helper.GetDBContext(activeWorkspaceId);
            bool       result            = true;
            ConsoleEventHandlerComment consoleEventHandler = new ConsoleEventHandlerComment();
            Response retVal = new Response()
            {
                Success = true,
                Message = String.Empty
            };

            //verify if the comment has a parent
            if (!(ActiveArtifact.Fields[RELATED_COMMENT_FIELD.ToString()] == null))
            {
                int parentCommentId = (int)ActiveArtifact.Fields[RELATED_COMMENT_FIELD.ToString()].Value.Value;
                kCura.Relativity.Client.DTOs.RDO parentComment = new kCura.Relativity.Client.DTOs.RDO(parentCommentId);
                using (kCura.Relativity.Client.IRSAPIClient client =
                           this.Helper.GetServicesManager().CreateProxy <kCura.Relativity.Client.IRSAPIClient>(ExecutionIdentity.System))
                {
                    int workspaceId = this.Helper.GetActiveCaseID();
                    client.APIOptions.WorkspaceID = workspaceId;
                    parentComment = client.Repositories.RDO.ReadSingle(parentCommentId);

                    client.APIOptions.WorkspaceID = -1;
                    kCura.Relativity.Client.DTOs.User userComment = new kCura.Relativity.Client.DTOs.User(parentComment.SystemCreatedBy.ArtifactID);
                    userComment = client.Repositories.User.ReadSingle(parentComment.SystemCreatedBy.ArtifactID);


                    if (ActiveArtifact.IsNew)
                    {
                        MailMessage email     = new MailMessage();
                        string      userEmail = userComment.EmailAddress;
                        string      author    = this.Helper.GetAuthenticationManager().UserInfo.FullName;
                        email.To.Add(new MailAddress(userEmail));
                        // sentEmailNew(email, author);
                    }
                }
            }
            else
            {
                using (kCura.Relativity.Client.IRSAPIClient client =
                           this.Helper.GetServicesManager().CreateProxy <kCura.Relativity.Client.IRSAPIClient>(ExecutionIdentity.System))
                {
                    string type        = string.Empty;
                    int    workspaceId = this.Helper.GetActiveCaseID();
                    client.APIOptions.WorkspaceID = workspaceId;
                    CORE.BLL.Service.RSAPIService.CommentRSAPIService commentRSAPIService = new CORE.BLL.Service.RSAPIService.CommentRSAPIService(client);
                    CORE.DAL.Entities.Comment comment     = commentRSAPIService.Get(ActiveArtifact.ArtifactID);
                    ChoiceCollection          typeChoices = (ChoiceCollection)this.ActiveArtifact.Fields[COMMENT_TYPE_FIELD_GUID.ToString()].Value.Value;
                    foreach (Choice typeC in typeChoices)
                    {
                        type = typeC.Name;
                    }
                    comment.TypeChoosed = type;
                    auditComment(comment, ActiveArtifact.IsNew, this.Helper.GetDBContext(workspaceId));
                }
            }


            try
            {
                ChoiceCollection typeChoices = (ChoiceCollection)this.ActiveArtifact.Fields[COMMENT_TYPE_FIELD_GUID.ToString()].Value.Value;

                foreach (Choice typeChoice in typeChoices)
                {
                    if (typeChoice.Name.Equals("Error"))
                    {
                        result = consoleEventHandler.insertJob(dbcontext, currentUser, activeArtifact);
                    }
                    else
                    {
                        result = consoleEventHandler.deleteJob(dbcontext, activeArtifact.ArtifactID);
                    }
                }
            }
            catch (Exception e)
            {
                retVal.Success = false;
                retVal.Message = e.Message;
            }
            return(retVal);
        }