Esempio n. 1
0
        // Note: Will go through ALL class, even built-in ones (modify the code if different behavior
        // is needed).
        private void ClearSelectedClassAliases()
        {
            ObjectClasses classes = vault.ClassOperations.GetAllObjectClasses();

            foreach (ObjectClass cl in classes)
            {
                // The corresponding ObjectClassAdmin
                ObjectClassAdmin cla = vault.ClassOperations.GetObjectClassAdmin(cl.ID);

                string clName  = cla.Name.Replace(" ", "");    //String.Empty);
                string aliases = cla.SemanticAliases.Value;

                // Remove the aliasPrefix if it exists.
                string updatedAliases = RemoveAlias(aliases, clPrefix + clName);
                if (aliases != updatedAliases)
                {
                    // Need to get the AssociatedPropertyDefs from the underlying ObjectClass (except
                    // for a few built-in properties), otherwise UpdateObjectClassAdmin() will fail.
                    CopyPropertiesToObjectClassAdmin(cla, cl);

                    cla.SemanticAliases.Value = updatedAliases;
                    vault.ClassOperations.UpdateObjectClassAdmin(cla);
                }
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Test Helper : Removes a Class Alias with test assertions.
        /// </summary>
        public void RemoveClassAlias(int objectClass, bool useShorthand = false)
        {
            if (useShorthand)
            {
                this.Settings.UseShorthand = true;
            }

            // Resolve the ClassAdmin.
            ObjectClassAdmin oca = this.V.ClassOperations.GetObjectClassAdmin(objectClass);

            // Format the alias to Remove.
            string aliasToRemove = this.Settings.FormatAlias(oca);

            // Check for the existence of the alias, removing if found.
            if (!this.V.AliasExists(MFMetadataStructureItem.MFMetadataStructureItemClass, aliasToRemove))
            {
                this.Tools.Add.ClassAlias(aliasToRemove, oca);
            }

            // Verify that the alias exists.
            Assert.IsTrue(
                this.V.AliasExists(MFMetadataStructureItem.MFMetadataStructureItemClass, aliasToRemove),
                "Verifying that alias exists: " + aliasToRemove);

            // Remove the Alias.
            this.Tools.Remove.ClassAlias(aliasToRemove, oca);

            // Verify that the alias does not exist.
            Assert.IsFalse(
                this.V.AliasExists(MFMetadataStructureItem.MFMetadataStructureItemClass, aliasToRemove),
                "Verifying that alias does not exist: " + aliasToRemove);
        }
Esempio n. 3
0
			/// <summary>
			/// Appends an object alias to the object class.
			/// </summary>
			/// <param name="id">Class ID</param>
			/// <param name="aliases">Aliases to append.</param>
			public void ClassAliases(int id, string[] aliases)
			{
				// Resolve the API Structure Object.
				ObjectClassAdmin objectClass = this.Vault.ClassOperations.GetObjectClassAdmin(id);
				foreach (string alias in aliases)
					ClassAlias(alias, objectClass);
			}
Esempio n. 4
0
        private void btnAddToClass_Click(object sender, EventArgs e)
        {
            // Connect to the vault and continue if successful.
            if (!ConnectToSelectedVault())
            {
                return;
            }

            ObjectClasses classes = vault.ClassOperations.GetAllObjectClasses();

            foreach (ObjectClass cl in classes)
            {
                if (cl.ObjectType == 0)
                {
                    ObjectClassAdmin cla = vault.ClassOperations.GetObjectClassAdmin(cl.ID);
                    // Need to get the AssociatedPropertyDefs from the underlying ObjectClass (except
                    // for a few built-in properties), otherwise UpdateObjectClassAdmin() will fail.
                    CopyPropertiesToObjectClassAdmin(cla, cl);
                    AssociatedPropertyDef apd = new AssociatedPropertyDef();
                    apd.PropertyDef = ((PropertyComboBoxItem)propertyComboBox.SelectedItem).propID;
                    cla.AssociatedPropertyDefs.Add(-1, apd);
                    vault.ClassOperations.UpdateObjectClassAdmin(cla);
                }
            }
            MessageBox.Show("Done");
        }
Esempio n. 5
0
			/// <summary>
			/// Clears the aliases on the <see cref="ObjectClass"/>with the provided id.
			/// </summary>
			/// <param name="classAdmin">Pre-resolved <see cref="ObjectClass"/></param>
			public void ClassAlias(ObjectClassAdmin classAdmin)
			{
				// Clear the aliases.
				classAdmin.SemanticAliases.Value = string.Empty;

				// Save changes.
				this.Vault.ClassOperations.UpdateObjectClassAdmin( classAdmin );
			}
Esempio n. 6
0
			/// <summary>
			/// Removes a alias from a <see cref="ObjectClass"/>.
			/// </summary>
			/// <param name="alias">Alias to remove.</param>
			/// <param name="objClass">Pre-resolved Object Class</param>
			public void ClassAlias(string alias, ObjectClassAdmin objClass)
			{
				// Search and Destroy.
				if (removeAlias(objClass.SemanticAliases, alias))
				{
					// Save changes.
					this.Vault.ClassOperations.UpdateObjectClassAdmin( objClass );
				}
			}
Esempio n. 7
0
        public ObjectClassAdmin AddObjectClassAdmin(ObjectClassAdmin objectClassAdmin)
        {
            vault.MetricGatherer.MethodCalled();

            // TODO: make functionality comparable to API
            vault.classAdmins.Add(objectClassAdmin);
            vault.classes.Add(new TestObjectClass(objectClassAdmin));

            return(objectClassAdmin);
        }
Esempio n. 8
0
        /// <summary>
        /// Test Helper : Clears a Class Alias with test assertions.
        /// </summary>
        public void ClearClassAlias(int objectClass)
        {
            // Resolve the ClassAdmin.
            ObjectClassAdmin oca = this.V.ClassOperations.GetObjectClassAdmin(objectClass);

            // Clear the Alias.
            this.Tools.Clear.ClassAlias(oca);

            // Verify that no aliases exist.
            Assert.IsTrue(
                string.IsNullOrWhiteSpace(oca.SemanticAliases.Value),
                "Verifying that no aliases exist: ");
        }
Esempio n. 9
0
        public int GetObjectClassIDByAlias(string alias)
        {
            vault.MetricGatherer.MethodCalled();

            try
            {
                ObjectClassAdmin classAdmin =
                    vault.classAdmins.SingleOrDefault(classy => classy.SemanticAliases.Value.Split(';').Contains(alias));
                return(classAdmin == null ? -1 : classAdmin.ID);
            }
            catch
            {
                return(-1);
            }
        }
Esempio n. 10
0
			/// <summary>
			/// Appends the alias to the object class.
			/// </summary>
			/// <param name="oca"><see cref="ObjectClass"/></param>
			/// <param name="alias">Alias to append.</param>
			public void ClassAlias(string alias, ObjectClassAdmin oca)
			{
				// Add the alias only if it does not already exist.
				if (!this.Vault.AliasExists(MFMetadataStructureItem.MFMetadataStructureItemClass, alias))
				{
					// Append a delimiter if needed.
					if (oca.SemanticAliases.Value.Length > 1 && !oca.SemanticAliases.Value.Trim().EndsWith(";"))
						oca.SemanticAliases.Value += ';';

					// Append the alias.
					oca.SemanticAliases.Value += alias;

					// Persist the change.
					this.Vault.ClassOperations.UpdateObjectClassAdmin(oca);
				}
			}
        private void UpdateClassAdmin(ObjectClassAdmin classAdmin)
        {
            var @class = Vault.ClassOperations.GetObjectClass(classAdmin.ID);

            classAdmin.AssociatedPropertyDefs = new AssociatedPropertyDefs();
            foreach (var apd in @class.AssociatedPropertyDefs.Cast <AssociatedPropertyDef>())
            {
                if (_ignorePropDefs.Contains(apd.PropertyDef))
                {
                    continue;
                }

                classAdmin.AssociatedPropertyDefs.Add(-1, apd);
            }
            Vault.ClassOperations.UpdateObjectClassAdmin(classAdmin);
        }
Esempio n. 12
0
        public TestObjectClass(ObjectClassAdmin oca)
        {
            xObjectClassAdmin oClass = new xObjectClassAdmin(oca);

            AssociatedPropertyDefs = new AssociatedPropertyDefs();
            foreach (xAssociatedPropertyDef associatedPropertyDef in oClass.AssociatedPropertyDefs)
            {
                AssociatedPropertyDefs.Add(-1, new TestAssociatedPropertyDef(associatedPropertyDef));
            }
            AutomaticPermissionsForObjects = new TestAutomaticPermissions(oClass.AutomaticPermissionsForObjects);
            ForceWorkflow   = oClass.ForceWorkflow;
            ID              = oClass.ID;
            Name            = oClass.Name;
            NamePropertyDef = oClass.NamePropertyDef;
            ObjectType      = oClass.ObjectType;
            Workflow        = oClass.Workflow;
        }
Esempio n. 13
0
        // Note: Will go through ALL classes, even built-in ones (modify the code if different behavior
        // is needed).
        private void ClearAllClassAliases()
        {
            ObjectClasses classes = vault.ClassOperations.GetAllObjectClasses();

            foreach (ObjectClass cl in classes)
            {
                // The corresponding ObjectClassAdmin
                ObjectClassAdmin cla = vault.ClassOperations.GetObjectClassAdmin(cl.ID);

                // Need to get the AssociatedPropertyDefs from the underlying ObjectClass (except
                // for a few built-in properties), otherwise UpdateObjectClassAdmin() will fail.
                CopyPropertiesToObjectClassAdmin(cla, cl);

                cla.SemanticAliases.Value = "";
                vault.ClassOperations.UpdateObjectClassAdmin(cla);
            }
        }
Esempio n. 14
0
        private void CopyPropertiesToObjectClassAdmin(ObjectClassAdmin oca, ObjectClass oc)
        {
            oca.AssociatedPropertyDefs = new AssociatedPropertyDefs();

            // Skip certain built-in properties present in the original ObjectClass object, these cause problems with
            // UpdateObjectClassAdmin() later.
            foreach (AssociatedPropertyDef def in oc.AssociatedPropertyDefs)
            {
                if ((def.PropertyDef >= 20 && def.PropertyDef <= 25) ||
                    (def.PropertyDef >= 30 && def.PropertyDef <= 32) ||
                    def.PropertyDef == 89 ||
                    def.PropertyDef == 101)
                {
                    continue;
                }
                else
                {
                    //Console.WriteLine("Adding: " + oc.Name + ", " + def.PropertyDef);
                    oca.AssociatedPropertyDefs.Add(-1, def);
                }
            }
        }
        public void KnownObjectClassReturnsCorrectData()
        {
            // Details about the class.
            int classId = 1234;

            string[] aliases = new []
            {
                "alias1",
                "alias2"
            };

            // Mock the class.
            var mock = this.GetVaultClassOperationsMock();

            mock
            .Setup(m => m.GetObjectClassAdmin(classId))
            .Returns((int id) =>
            {
                var objectClassAdmin = new ObjectClassAdmin()
                {
                    ID              = classId,
                    Name            = "hello world",
                    SemanticAliases = new SemanticAliases()
                    {
                        Value = string.Join(";", aliases)
                    }
                };
                return(objectClassAdmin);
            });

            // Run the method and check the output.
            Assert.IsTrue(mock.Object.TryGetObjectClassAliases(classId, out string[] output));
            Assert.AreEqual(aliases.Length, output.Length);
            foreach (var alias in aliases)
            {
                Assert.IsTrue(output.Contains(alias));
            }
        }
Esempio n. 16
0
        private void CreateClassAliases()
        {
            ObjectClasses classes = vault.ClassOperations.GetAllObjectClasses();

            foreach (ObjectClass cl in classes)
            {
                // Skip Assignment and Report classes (comment this line out if you want to include them).
                if (cl.ID < 0)
                {
                    continue;
                }

                // The corresponding ObjectClassAdmin
                ObjectClassAdmin cla = vault.ClassOperations.GetObjectClassAdmin(cl.ID);

                string clName  = cla.Name.Replace(" ", "");    //String.Empty);
                string aliases = cla.SemanticAliases.Value;

                Alias newAlias = new Alias(Alias.ELEMENT_TYPE_CL, clName, clPrefix);

                // Add the new alias if not already there.
                string updatedAliases = AddAlias(aliases, newAlias.ElementAlias);
                if (aliases != updatedAliases)
                {
                    // Need to get the AssociatedPropertyDefs from the underlying ObjectClass (except
                    // for a few built-in properties), otherwise UpdateObjectClassAdmin() will fail.
                    CopyPropertiesToObjectClassAdmin(cla, cl);

                    cla.SemanticAliases.Value = updatedAliases;
                    vault.ClassOperations.UpdateObjectClassAdmin(cla);
                }

                // We will need the alias object later when generating the "Aliases.cs" and "Config.cs" files.
                clAliases.Add(newAlias);
            }
        }
Esempio n. 17
0
        public void UpdateObjectClassAdmin(ObjectClassAdmin objectClass)
        {
            vault.MetricGatherer.MethodCalled();

            throw new NotImplementedException();
        }
Esempio n. 18
0
			/// <summary>
			/// Clears the aliases on the <see cref="ObjectClass"/>with the provided id.
			/// </summary>
			/// <param name="id"><see cref="ObjectClass"/> ID</param>
			public void ClassAlias(int id)
			{
				// Get the Class Admin with the provided id.
				ObjectClassAdmin classAdmin = this.Vault.ClassOperations.GetObjectClassAdmin( id );
				ClassAlias(classAdmin);
			}
Esempio n. 19
0
        public void Test_002_ClassFormating(string expectedAlias, int id, bool useShorthand = false)
        {
            ObjectClassAdmin objClass = this.V.ClassOperations.GetObjectClassAdmin(id);

            FormatAlias(objClass, expectedAlias, useShorthand);
        }
Esempio n. 20
0
			/// <summary>
			/// Removes a alias from a <see cref="ObjectClass"/>.
			/// </summary>
			/// <param name="id">Class ID</param>
			/// <param name="alias">Alias to remove.</param>
			public void ClassAlias(int id, string alias)
			{
				// Resolve the ObjectClass Admin.
				ObjectClassAdmin objClass = this.Vault.ClassById(id );
				ClassAlias(alias, objClass);
			}