public int CreateField(int workspaceID, FieldRequest request)
        {
            int fieldID = 0;

            DTOs.WriteResultSet <DTOs.Field> results;

            //Create a Field DTO
            var fieldDTO = new DTOs.Field();

            //Set secondary fields
            request.HydrateFieldDTO(fieldDTO);
            //Create the field
            using (var client = _helper.GetServicesManager().CreateProxy <IRSAPIClient>(ExecutionIdentity.System))
            {
                client.APIOptions.WorkspaceID = workspaceID;
                results = client.Repositories.Field.Create(fieldDTO);
            }
            //Check for success
            if (results.Success)
            {
                fieldID = results.Results.FirstOrDefault().Artifact.ArtifactID;
            }
            else
            {
                var innEx = results.Results.Any() ? new Exception(results.Results.First().Message) : null;
                throw new Exception(results.Message, innEx);
            }
            return(fieldID);
        }
示例#2
0
        public static int CreateDocumentFieldArticleTitle(IRSAPIClient proxy, int workspaceId)
        {
            Field createField = new Field()
            {
                Name               = "Article Title",
                FieldTypeID        = FieldType.LongText,
                IsRequired         = false,
                Unicode            = true,
                OpenToAssociations = true,
                Linked             = false,
                AllowSortTally     = true,
                Wrapping           = true,
                AllowGroupBy       = true,
                AllowPivot         = true,
                IgnoreWarnings     = true,
                IncludeInTextIndex = false,
                AvailableInViewer  = false,
                AllowHTML          = false,
                Width              = "123",
                ObjectType         = new ObjectType
                {
                    DescriptorArtifactTypeID = 10
                }
            };

            proxy.APIOptions.WorkspaceID = workspaceId;
            int artifactIdCreatedField = proxy.Repositories.Field.CreateSingle(createField);

            return(artifactIdCreatedField);
        }
        public int GetFieldArtifactId(string fieldName, int workspaceId, IServicesMgr svcMgr, ExecutionIdentity identity)
        {
            int artifactId;

            try
            {
                using (IRSAPIClient client = svcMgr.CreateProxy <IRSAPIClient>(identity))
                {
                    client.APIOptions.WorkspaceID = workspaceId;

                    Query <kCura.Relativity.Client.DTOs.Field> query = new Query <kCura.Relativity.Client.DTOs.Field>();
                    query.Fields    = FieldValue.AllFields;
                    query.Condition = new TextCondition("Name", TextConditionEnum.Like, fieldName);

                    ResultSet <kCura.Relativity.Client.DTOs.Field> results       = client.Repositories.Field.Query(query);
                    kCura.Relativity.Client.DTOs.Field             fieldArtifact = results.Results.FirstOrDefault().Artifact;
                    artifactId = fieldArtifact.ArtifactID;
                }
            }
            catch (Exception)
            {
                //Instead of throwing an exception we want to set the artifactId = 0
                artifactId = 0;
            }
            return(artifactId);
        }
示例#4
0
        public static Int32 CreateField_FixedLengthText(IRSAPIClient client, Int32 workspaceID)
        {
            Int32 fieldID = 0;

            //Set the workspace ID
            client.APIOptions.WorkspaceID = workspaceID;

            //Read the object type to add fields to
            //kCura.Relativity.Client.DTOs.ObjectType objectToAddFieldTo = client.Repositories.ObjectType.ReadSingle(objectTypeID);

            //Create a Field DTO
            kCura.Relativity.Client.DTOs.Field fieldDTO = new kCura.Relativity.Client.DTOs.Field();

            //Set primary fields
            //The name of the sample data is being set to a random string so that sample data can be debugged
            //and never causes collisions. You can set this to any string that you want
            fieldDTO.Name       = string.Format("FixedLegthText{0}", Guid.NewGuid());
            fieldDTO.ObjectType = new kCura.Relativity.Client.DTOs.ObjectType()
            {
                DescriptorArtifactTypeID = (int)ArtifactType.Document
            };
            fieldDTO.FieldTypeID = kCura.Relativity.Client.FieldType.FixedLengthText;

            //Set secondary fields
            fieldDTO.AllowHTML          = false;
            fieldDTO.AllowGroupBy       = false;
            fieldDTO.AllowPivot         = false;
            fieldDTO.AllowSortTally     = false;
            fieldDTO.IncludeInTextIndex = true;
            fieldDTO.IsRequired         = false;
            fieldDTO.OpenToAssociations = false;
            fieldDTO.Length             = 255;
            fieldDTO.Linked             = false;
            fieldDTO.Unicode            = true;
            fieldDTO.Width        = "";
            fieldDTO.Wrapping     = true;
            fieldDTO.IsRelational = false;

            //Create the field
            kCura.Relativity.Client.DTOs.WriteResultSet <kCura.Relativity.Client.DTOs.Field> resultSet =
                client.Repositories.Field.Create(fieldDTO);
            //Check for success
            if (resultSet.Success)
            {
                fieldID = resultSet.Results.FirstOrDefault().Artifact.ArtifactID;

                return(fieldID);
            }
            else
            {
                Console.WriteLine("Field was not created");
                return(fieldID);
            }
        }
示例#5
0
        private int?GetFileTypeCode()
        {
            int?result = null;

            DTOs.Field ftField = Connection.Repositories.Field.ReadSingle(new Guid(MainApp.Helper.Constant.FIELD_DOCUMENT_TYPE));

            if (ftField != null)
            {
                result = ftField.ChoiceTypeID;
            }

            return(result);
        }
示例#6
0
        public static Int32 CreateField_YesNO(IRSAPIClient client, int workspaceID)
        {
            Int32 fieldID = 0;

            //Set the workspace ID
            client.APIOptions.WorkspaceID = workspaceID;

            //Create a Field DTO
            kCura.Relativity.Client.DTOs.Field fieldDTO = new kCura.Relativity.Client.DTOs.Field();

            //Set primary fields
            //The name of the sample data is being set to a random string so that sample data can be debugged
            //and never causes collisions. You can set this to any string that you want
            fieldDTO.Name       = string.Format("API Sample {0}", Guid.NewGuid());
            fieldDTO.ObjectType = new kCura.Relativity.Client.DTOs.ObjectType()
            {
                DescriptorArtifactTypeID = (int)ArtifactType.Document
            };
            fieldDTO.FieldTypeID = kCura.Relativity.Client.FieldType.YesNo;
            fieldDTO.YesValue    = "Yes";
            fieldDTO.NoValue     = "No";

            // Set secondary fields
            fieldDTO.AllowGroupBy       = false;
            fieldDTO.AllowPivot         = false;
            fieldDTO.AllowSortTally     = false;
            fieldDTO.IsRequired         = false;
            fieldDTO.OpenToAssociations = false;
            fieldDTO.Linked             = false;
            fieldDTO.Width    = "";
            fieldDTO.Wrapping = true;

            kCura.Relativity.Client.DTOs.WriteResultSet <kCura.Relativity.Client.DTOs.Field> resultSet = client.Repositories.Field.Create(fieldDTO);

            //Check for success
            if (resultSet.Success)
            {
                fieldID = resultSet.Results.FirstOrDefault().Artifact.ArtifactID;

                return(fieldID);
            }
            else
            {
                Console.WriteLine("Field was not created");
                return(fieldID);
            }
        }
        public async Task <int> CreateResponsiveFieldAsync(int workspaceArtifactId)
        {
            Console2.WriteDisplayStartLine("Creating Responsive Field");

            try
            {
                RsapiClient.APIOptions.WorkspaceID = workspaceArtifactId;

                kCura.Relativity.Client.DTOs.Field responsiveField = new kCura.Relativity.Client.DTOs.Field
                {
                    ObjectType = new ObjectType
                    {
                        DescriptorArtifactTypeID = Constants.DOCUMENT_ARTIFACT_TYPE
                    },
                    Name               = Constants.Workspace.ResponsiveField.Name,
                    FieldTypeID        = Constants.Workspace.ResponsiveField.FIELD_TYPE_ID,
                    IsRequired         = Constants.Workspace.ResponsiveField.IS_REQUIRED,
                    OpenToAssociations = Constants.Workspace.ResponsiveField.OPEN_TO_ASSOCIATIONS,
                    Linked             = Constants.Workspace.ResponsiveField.LINKED,
                    AllowSortTally     = Constants.Workspace.ResponsiveField.ALLOW_SORT_TALLY,
                    Wrapping           = Constants.Workspace.ResponsiveField.WRAPPING,
                    AllowGroupBy       = Constants.Workspace.ResponsiveField.ALLOW_GROUP_BY,
                    AllowPivot         = Constants.Workspace.ResponsiveField.ALLOW_PIVOT,
                    IgnoreWarnings     = Constants.Workspace.ResponsiveField.IGNORE_WARNINGS,
                    Width              = Constants.Workspace.ResponsiveField.WIDTH,
                    NoValue            = Constants.Workspace.ResponsiveField.NO_VALUE,
                    YesValue           = Constants.Workspace.ResponsiveField.YES_VALUE
                };

                int responsiveFieldArtifactId = await Task.Run(() => RsapiClient.Repositories.Field.CreateSingle(responsiveField));

                if (responsiveFieldArtifactId == 0)
                {
                    throw new Exception("Failed to create Responsive Field");
                }

                Console2.WriteDebugLine($"Responsive Field ArtifactId: {responsiveFieldArtifactId}");
                Console2.WriteDisplayEndLine("Created Responsive Field!");

                return(responsiveFieldArtifactId);
            }
            catch (Exception ex)
            {
                throw new Exception("An error occured when creating Responsive field", ex);
            }
        }
示例#8
0
        public static Int32 CreateField_MultipleChoice(IRSAPIClient client, int workspaceID)
        {
            Int32 fieldID = 0;

            //Set the workspace ID
            client.APIOptions.WorkspaceID = workspaceID;

            //Create a Field DTO
            kCura.Relativity.Client.DTOs.Field fieldDTO = new kCura.Relativity.Client.DTOs.Field();

            fieldDTO.Name       = string.Format("API Sample {0}", Guid.NewGuid());
            fieldDTO.ObjectType = new kCura.Relativity.Client.DTOs.ObjectType()
            {
                DescriptorArtifactTypeID = (int)ArtifactType.Document
            };
            fieldDTO.FieldTypeID = kCura.Relativity.Client.FieldType.MultipleChoice;

            // Set secondary fields
            fieldDTO.AllowGroupBy         = false;
            fieldDTO.AllowPivot           = false;
            fieldDTO.AllowSortTally       = false;
            fieldDTO.AvailableInFieldTree = false;
            fieldDTO.IsRequired           = false;
            fieldDTO.OpenToAssociations   = false;
            fieldDTO.Linked   = false;
            fieldDTO.Unicode  = true;
            fieldDTO.Width    = "";
            fieldDTO.Wrapping = true;

            //Create the fields
            kCura.Relativity.Client.DTOs.WriteResultSet <kCura.Relativity.Client.DTOs.Field> resultSet = client.Repositories.Field.Create(fieldDTO);

            //Check for success
            if (resultSet.Success)
            {
                fieldID = resultSet.Results.FirstOrDefault().Artifact.ArtifactID;
                return(fieldID);
            }
            else
            {
                Console.WriteLine("Field was not created");
                return(fieldID);
            }
        }
 private void hydrateCommonData(DTOs.Field fieldDTO)
 {
     //Set primary fields
     //The name of the sample data is being set to a random string so that sample data can be debugged
     //and never causes collisions. You can set this to any string that you want
     fieldDTO.Name = FieldName ?? $"{FieldType}{Guid.NewGuid()}";
     if (fieldDTO.Name.Length > 50)
     {
         fieldDTO.Name = fieldDTO.Name.Substring(0, 50);
     }
     fieldDTO.FieldTypeID = FieldType;
     fieldDTO.ObjectType  = new DTOs.ObjectType
     {
         DescriptorArtifactTypeID = ArtifactType
     };
     fieldDTO.AllowGroupBy   = AllowGroupBy;
     fieldDTO.AllowPivot     = AllowPivot;
     fieldDTO.AllowSortTally = AllowSortTally;
     fieldDTO.IsRequired     = IsRequired;
     fieldDTO.Linked         = Linked;
     fieldDTO.Width          = Width;
 }
示例#10
0
        public static Int32 GetFieldCodeTypeId(IRSAPIClient proxy, Int32 workspaceID)
        {
            proxy.APIOptions.WorkspaceID = workspaceID;

            // STEP 1: Call the Read() method on the Field repository, passing a Field DTO.
            ResultSet <kCura.Relativity.Client.DTOs.Field> results;

            //todo: Get the duplicate status field artifact id dynamically
            results = proxy.Repositories.Field.Read(new kCura.Relativity.Client.DTOs.Field(1038856)
            {
                Fields = FieldValue.AllFields
            });

            // STEP 2: Get the Field artifact from the read results.
            kCura.Relativity.Client.DTOs.Field fieldArtifact = results.Results.FirstOrDefault().Artifact;

            Console.WriteLine("Field Name: " + fieldArtifact.Name);
            Console.WriteLine("Field Type: " + fieldArtifact.FieldTypeID);
            Console.WriteLine("Object Type: " + fieldArtifact.ObjectType.DescriptorArtifactTypeID);
            Int32 CodetypeId = Convert.ToInt32(fieldArtifact.ChoiceTypeID);

            return(CodetypeId);
        }
 public void HydrateFieldDTO(DTOs.Field fieldDTO)
 {
     hydrateCommonData(fieldDTO);
     hydrateByFieldType(fieldDTO);
 }
        private void hydrateByFieldType(DTOs.Field fieldDTO)
        {
            switch (FieldType)
            {
            case FieldType.FixedLengthText:
                //TODO: move to atomic methods
                fieldDTO.AllowHTML          = AllowHTML;
                fieldDTO.IncludeInTextIndex = IncludeInTextIndex;
                fieldDTO.OpenToAssociations = OpenToAssociations;
                fieldDTO.Length             = Length;
                fieldDTO.Unicode            = Unicode;
                fieldDTO.Wrapping           = Wrapping;
                fieldDTO.IsRelational       = IsRelational;
                break;

            case FieldType.WholeNumber:
                fieldDTO.OpenToAssociations = OpenToAssociations;
                fieldDTO.Wrapping           = Wrapping;
                break;

            case FieldType.Date:
                fieldDTO.OpenToAssociations = OpenToAssociations;
                fieldDTO.Wrapping           = Wrapping;
                break;

            case FieldType.YesNo:
                fieldDTO.YesValue           = YesValue;
                fieldDTO.NoValue            = NoValue;
                fieldDTO.OpenToAssociations = OpenToAssociations;
                fieldDTO.Wrapping           = true;
                break;

            case FieldType.LongText:
                fieldDTO.AllowHTML          = AllowHTML;
                fieldDTO.AvailableInViewer  = AvailableInViewer;
                fieldDTO.IncludeInTextIndex = IncludeInTextIndex;
                fieldDTO.OpenToAssociations = OpenToAssociations;
                fieldDTO.Unicode            = Unicode;
                fieldDTO.Wrapping           = Wrapping;
                break;

            case FieldType.SingleChoice:
                fieldDTO.AvailableInFieldTree = AvailableInFieldTree;
                fieldDTO.OpenToAssociations   = OpenToAssociations;
                fieldDTO.Unicode  = Unicode;
                fieldDTO.Wrapping = Wrapping;
                break;

            case FieldType.Decimal:
                fieldDTO.OpenToAssociations = OpenToAssociations;
                fieldDTO.Wrapping           = Wrapping;
                break;

            case FieldType.Currency:
                fieldDTO.OpenToAssociations = OpenToAssociations;
                fieldDTO.Wrapping           = Wrapping;
                break;

            case FieldType.MultipleChoice:
                fieldDTO.AvailableInFieldTree = AvailableInFieldTree;
                fieldDTO.OpenToAssociations   = OpenToAssociations;
                fieldDTO.Unicode  = Unicode;
                fieldDTO.Wrapping = Wrapping;
                break;

            case FieldType.User:
                fieldDTO.OpenToAssociations = OpenToAssociations;
                fieldDTO.Wrapping           = Wrapping;
                break;

            case FieldType.MultipleObject:
            case FieldType.SingleObject:
            case FieldType.File:
                throw new NotImplementedException();
            }
        }
        public int CreateFixedLengthTextField(int workspaceId, IServicesMgr svcMgr, ExecutionIdentity identity)
        {
            int fieldId = 0;

            try
            {
                using (IRSAPIClient client = svcMgr.CreateProxy <IRSAPIClient>(identity))
                {
                    //Set the workspace ID
                    client.APIOptions.WorkspaceID = workspaceId;

                    //Create a Field DTO
                    kCura.Relativity.Client.DTOs.Field fieldDto = new kCura.Relativity.Client.DTOs.Field();

                    //Set primary fields
                    //The name of the sample data is being set to a random string so that sample data can be debugged
                    //and never causes collisions. You can set this to any string that you want
                    fieldDto.Name       = "Demo Document Field";
                    fieldDto.ObjectType = new kCura.Relativity.Client.DTOs.ObjectType()
                    {
                        DescriptorArtifactTypeID = (int)ArtifactType.Document
                    };
                    fieldDto.FieldTypeID = FieldType.FixedLengthText;

                    //Set secondary fields
                    fieldDto.AllowHTML          = false;
                    fieldDto.AllowGroupBy       = false;
                    fieldDto.AllowPivot         = false;
                    fieldDto.AllowSortTally     = false;
                    fieldDto.IncludeInTextIndex = true;
                    fieldDto.IsRequired         = false;
                    fieldDto.OpenToAssociations = false;
                    fieldDto.Length             = 255;
                    fieldDto.Linked             = false;
                    fieldDto.Unicode            = true;
                    fieldDto.Width        = "";
                    fieldDto.Wrapping     = true;
                    fieldDto.IsRelational = false;

                    //Create the field
                    WriteResultSet <kCura.Relativity.Client.DTOs.Field> resultSet = client.Repositories.Field.Create(fieldDto);

                    //Check for success
                    if (!resultSet.Success)
                    {
                        Console.WriteLine("Field was not created");
                        return(fieldId);
                    }

                    Result <kCura.Relativity.Client.DTOs.Field> firstOrDefault = resultSet.Results.FirstOrDefault();
                    if (firstOrDefault != null)
                    {
                        fieldId = firstOrDefault.Artifact.ArtifactID;
                    }

                    return(fieldId);
                }
            }
            catch (Exception)
            {
                throw new Exception("Failed in the create field method.");
            }
        }