public static EntityMetadata GetEntityMetadata()
        {
            var metadata = new EntityMetadata
            {
                LogicalName = "account"
            };

            metadata.SetSealedPropertyValue(nameof(metadata.PrimaryIdAttribute), "accountid");
            metadata.SetSealedPropertyValue(nameof(metadata.PrimaryNameAttribute), "name");

            var accountid = new UniqueIdentifierAttributeMetadata("accountid")
            {
                LogicalName = "accountid"
            };

            accountid.SetSealedPropertyValue(nameof(accountid.IsPrimaryId), true);
            accountid.SetSealedPropertyValue(nameof(accountid.IsValidForCreate), true);

            var name = new StringAttributeMetadata("name")
            {
                LogicalName = "name"
            };

            name.SetSealedPropertyValue(nameof(name.IsPrimaryName), true);
            name.SetSealedPropertyValue(nameof(name.IsValidForCreate), true);

            var primarycontactid = new LookupAttributeMetadata()
            {
                LogicalName = "primarycontactid",
                SchemaName  = "primarycontactid"
            };

            primarycontactid.SetSealedPropertyValue(nameof(primarycontactid.IsValidForCreate), true);

            metadata.SetAttributeCollection(
                new AttributeMetadata[] { accountid, name, primarycontactid }
                .Concat(GlobalMetadata.GetGlobalMetadata())
                .Concat(GlobalMetadata.GetOwnerMetadata())
                .Concat(GlobalMetadata.GetProcessMetadata())
                .ToArray());

            return(metadata);
        }
示例#2
0
        public void OnlyLookupsAreCheckedOnCustomUnmanagedEntity()
        {
            var entity = new EntityMetadata()
            {
                SchemaName = "foo_myEntity",
            };

            entity.SetSealedPropertyValue("IsManaged", false);
            entity.SetSealedPropertyValue("IsCustomEntity", true);

            var scope = RuleScope.Lookup;

            var stringAttr = new StringAttributeMetadata()
            {
                SchemaName = "foo_StrField"
            };

            stringAttr.SetSealedPropertyValue("IsCustomAttribute", true);
            stringAttr.SetSealedPropertyValue("IsManaged", false);

            var primaryKeyAttr = new UniqueIdentifierAttributeMetadata()
            {
                SchemaName = "foo_myEntityId"
            };

            primaryKeyAttr.SetSealedPropertyValue("IsCustomAttribute", true);
            primaryKeyAttr.SetSealedPropertyValue("IsManaged", false);

            var attributes = new List <AttributeMetadata> {
                stringAttr,
                primaryKeyAttr
            };
            var solutionEntity = new SolutionEntity(entity, attributes, true);

            var rule    = new RegexRule(_REGEX_PATTERN, scope);
            var results = rule.Validate(solutionEntity);

            Assert.True(results.Passed);
        }
示例#3
0
        public static IEnumerable <AttributeMetadata> GetProcessMetadata()
        {
            var stageid = new UniqueIdentifierAttributeMetadata("StageId")
            {
                LogicalName = "stageid"
            };

            stageid.SetSealedPropertyValue(nameof(stageid.IsValidForCreate), true);
            yield return(stageid);

            var processid = new UniqueIdentifierAttributeMetadata("ProcessId")
            {
                LogicalName = "processid"
            };

            processid.SetSealedPropertyValue(nameof(processid.IsValidForCreate), true);
            yield return(processid);
        }