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());
            }
        }
예제 #2
0
        public static Int32 Create(IServicesMgr svcMgr,
                                   ExecutionIdentity identity,
                                   Int32 workspaceArtifactId,
                                   String fullName,
                                   String firstName,
                                   String lastName,
                                   DestinationEnum destination)
        {
            using (var client = svcMgr.CreateProxy <IRSAPIClient>(identity))
            {
                client.APIOptions.WorkspaceID = workspaceArtifactId;
                var r = new RDO
                {
                    ArtifactTypeGuids = new List <Guid> {
                        Helpers.Constants.Guids.ObjectType.Custodian
                    }
                };
                r.Fields.Add(new FieldValue(Helpers.Constants.Guids.Fields.Custodian.Name, fullName));
                if (destination == DestinationEnum.Custodian)
                {
                    r.Fields.Add(new FieldValue(Helpers.Constants.Guids.Fields.Custodian.FirstName, firstName));
                    r.Fields.Add(new FieldValue(Helpers.Constants.Guids.Fields.Custodian.LastName, lastName));
                    r.Fields.Add(new FieldValue(Helpers.Constants.Guids.Fields.Custodian.CustodianType,
                                                Helpers.Constants.Guids.Choices.ProcessingSet.CustodianTypePerson));
                }
                else
                {
                    r.Fields.Add(new FieldValue(Helpers.Constants.Guids.Fields.Custodian.CustodianType,
                                                Helpers.Constants.Guids.Choices.ProcessingSet.CustodianTypeEntity));
                }

                var results = client.Repositories.RDO.Create(r);

                var res = new Response <Int32>
                {
                    Results = results.Results.Any() ? results.Results.FirstOrDefault().Artifact.ArtifactID : 0,
                    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());
            }
        }
예제 #3
0
        public static Response <IEnumerable <kCura.Relativity.Client.DTOs.Error> > CompileWriteResults(WriteResultSet <kCura.Relativity.Client.DTOs.Error> theseResults)
        {
            bool   success = true;
            string message = "";

            message += theseResults.Message;
            if (!theseResults.Success)
            {
                success = false;
            }

            var res = new Response <IEnumerable <kCura.Relativity.Client.DTOs.Error> >
            {
                Results = theseResults.Results.Select(x => x.Artifact),
                Success = success,
                Message = MessageFormatter.FormatMessage(theseResults.Results.Select(x => x.Message).ToList(), message, success)
            };

            return(res);
        }
예제 #4
0
        public static Response <IEnumerable <RDO> > CompileQuerySubsets(IRSAPIClient proxy, QueryResultSet <RDO> theseResults)
        {
            bool   success    = true;
            string message    = "";
            var    resultList = new List <Result <RDO> >();
            int    iterator   = 0;

            message += theseResults.Message;
            if (!theseResults.Success)
            {
                success = false;
            }

            resultList.AddRange(theseResults.Results);
            if (!String.IsNullOrEmpty(theseResults.QueryToken))
            {
                string queryToken = theseResults.QueryToken;
                int    batchSize  = theseResults.Results.Count();
                iterator += batchSize;
                do
                {
                    theseResults = proxy.Repositories.RDO.QuerySubset(queryToken, iterator + 1, batchSize);
                    resultList.AddRange(theseResults.Results);
                    message += theseResults.Message;
                    if (!theseResults.Success)
                    {
                        success = false;
                    }
                    iterator += batchSize;
                } while (iterator < theseResults.TotalCount);
            }

            var res = new Response <IEnumerable <RDO> >
            {
                Results = resultList.Select(x => x.Artifact),
                Success = success,
                Message = MessageFormatter.FormatMessage(resultList.Select(x => x.Message).ToList(), message, success)
            };

            return(res);
        }
예제 #5
0
        public static Int32 Create(IServicesMgr svcMgr, ExecutionIdentity identity, Int32 workspaceArtifactId,
                                   Int32 custodianArtifactId, Models.ProcessingProfileModel processingProfile,
                                   String sourcePath, kCura.Relativity.Client.DTOs.Artifact processingSet, Int32 order, string docNumberingPrefix)
        {
            using (var client = svcMgr.CreateProxy <IRSAPIClient>(identity))
            {
                client.APIOptions.WorkspaceID = workspaceArtifactId;
                var r = new RDO
                {
                    ArtifactTypeGuids = new List <Guid> {
                        Helpers.Constants.Guids.ObjectType.ProcessingDataSource
                    },
                    ParentArtifact = processingSet
                };

                r.Fields.Add(new FieldValue(Helpers.Constants.Guids.Fields.ProcessingDataSource.RelatedCustodian, custodianArtifactId));
                r.Fields.Add(new FieldValue(Helpers.Constants.Guids.Fields.ProcessingDataSource.SourcePath, sourcePath));
                r.Fields.Add(new FieldValue(Helpers.Constants.Guids.Fields.ProcessingDataSource.DestinationFolder, processingProfile.ParentFolderArtifactId));
                r.Fields.Add(new FieldValue(Helpers.Constants.Guids.Fields.ProcessingDataSource.TimeZone, processingProfile.TimeZoneArtifactId));
                r.Fields.Add(new FieldValue(Helpers.Constants.Guids.Fields.ProcessingDataSource.OcrLanguages, processingProfile.OcrLanguages));
                r.Fields.Add(new FieldValue(Helpers.Constants.Guids.Fields.ProcessingDataSource.DocumentNumberingPrefix, docNumberingPrefix));
                r.Fields.Add(new FieldValue(Helpers.Constants.Guids.Fields.ProcessingDataSource.Status, "New"));
                r.Fields.Add(new FieldValue(Helpers.Constants.Guids.Fields.ProcessingDataSource.Order, order));

                var results = client.Repositories.RDO.Create(r);

                var res = new Response <Int32>
                {
                    Results = results.Results.Any() ? results.Results.FirstOrDefault().Artifact.ArtifactID : 0,
                    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());
            }
        }
예제 #6
0
        public static void Update(IServicesMgr svcMgr, ExecutionIdentity identity, Int32 workspaceArtifactId, Int32 processingDataSourceArtifactId)
        {
            using (var client = svcMgr.CreateProxy <IRSAPIClient>(identity))
            {
                client.APIOptions.WorkspaceID = workspaceArtifactId;
                var r = new RDO(Helpers.Constants.Guids.ObjectType.ProcessingDataSource, processingDataSourceArtifactId);
                r.Fields.Add(new FieldValue(Helpers.Constants.Guids.Fields.ProcessingDataSource.RelatedProcessingDataSource, processingDataSourceArtifactId));

                var results = client.Repositories.RDO.Update(r);

                var res = new Response <ResultSet <RDO> >
                {
                    Results = results,
                    Success = results.Success,
                    Message = MessageFormatter.FormatMessage(results.Results.Select(x => x.Message).ToList(), results.Message, results.Success)
                };

                if (!res.Success)
                {
                    throw new Exception(res.Message.ToString());
                }
            }
        }
예제 #7
0
        private static Response <bool> RetrieveRdoByGuidAndArtifactTypeName(IServicesMgr svcMgr, ExecutionIdentity identity, Int32 workspaceArtifactId, Guid guid)
        {
            ResultSet <RDO> results;

            using (var client = (RSAPIClient)svcMgr.CreateProxy <IRSAPIClient>(identity))
            {
                client.APIOptions.WorkspaceID = workspaceArtifactId;
                var relApp = new RDO(guid)
                {
                    ArtifactTypeName = "Tab"
                };

                results = client.Repositories.RDO.Read(relApp);
            }

            var res = new Response <bool>
            {
                Results = results.Success,
                Success = results.Success,
                Message = MessageFormatter.FormatMessage(results.Results.Select(x => x.Message).ToList(), results.Message, results.Success)
            };

            return(res);
        }