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); }
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); }
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); }