protected virtual bool VerifyEntityTypeCondition( [NotNull] string entityPropertyName, [NotNull] EntityTypeDefinition entityTypeDefinition, [NotNull] EntityProperties entityProperties) { Assert.ArgumentNotNull(entityPropertyName, "entityPropertyName"); Assert.ArgumentNotNull(entityTypeDefinition, "entityTypeDefinition"); Assert.ArgumentNotNull(entityProperties, "entityProperties"); EntityPropertyValue entityProperty = entityProperties[entityPropertyName]; if (entityProperty == null) { return(false); } string entityPropertyValue = entityProperty.Value; if (string.IsNullOrEmpty(entityPropertyValue)) { return(false); } foreach (string entityTypePropertyValue in entityTypeDefinition.Properties[entityPropertyName]) { if (entityPropertyValue == entityTypePropertyValue) { return(true); } } return(false); }
private void OnEnable() { _myTarget = (EntityTypeDefinition)target; _rootElement = new VisualElement(); _visualTree = AssetDatabaseHelper.LoadFirstAssetByFilter <VisualTreeAsset>("EntityTypeDefinitionTemplate", null); var styleSheet = AssetDatabaseHelper.LoadFirstAssetByFilter <StyleSheet>("EntityTypeDefinitionStyle", null); _rootElement.styleSheets.Add(styleSheet); }
protected virtual bool IsProperEntityType([NotNull] EntityTypeDefinition entityTypeDefinition, [NotNull] EntityProperties entityProperties) { Assert.ArgumentNotNull(entityTypeDefinition, "entityTypeDefinition"); Assert.ArgumentNotNull(entityProperties, "entityProperties"); foreach (string entityPropertyName in entityTypeDefinition.Properties.Keys) { if (!this.VerifyEntityTypeCondition(entityPropertyName, entityTypeDefinition, entityProperties)) { return(false); } } return(true); }
public IEntityGraph <IEntityTypeDefinition> Get(IEnumerable <IMappedIdentifier> identifiers, int traversalDepth) { var elements = PackageXml.XPathSelectElements("DocumentType"); var returnVal = new EntityGraph <IEntityTypeDefinition>(); foreach (var xElement in elements) { EntityTypeDefinition entityTypeDefinition = new EntityTypeDefinition(); entityTypeDefinition.Id = new RepositoryGeneratedIdentifier(); entityTypeDefinition.Name = xElement.Element("Name").Value; entityTypeDefinition.Alias = xElement.Element("Alias").Value; entityTypeDefinition.GraphSchema = new EntityGraphSchema(); } return(returnVal); }
public static void GenerateGroupDefinitionsForType(EntityTypeDefinition entityTypeDefinition) { LoadSettingsFile(); if (entityTypeDefinition == null) { return; } if (_settings == null) { return; } var properties = entityTypeDefinition.EntityProperties.GetProperties(); foreach (EntityProperty property in properties) { var propertyName = property.ToString(); var entityTypeName = entityTypeDefinition.EntityType.ToString(); if (propertyName.Equals(entityTypeName)) { break; } var path = Path.Combine(_settings.DefinitionsRootPath, $"{propertyName}{EntityDefinitionGenerator.NameSuffix}s"); var typeName = $"{GeneratorConstants.DefinitionNamespace}.{propertyName}{EntityDefinitionGenerator.NameSuffix}"; var type = GeneratorUtils.GetTypeFromName(typeName); var entityGroupDefinition = ScriptableObject.CreateInstance(type); var definition = entityGroupDefinition as IEntityDefinition; definition?.SetEntityType(entityTypeDefinition.EntityType); if (entityGroupDefinition == null) { return; } if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } AssetDatabase.CreateAsset(entityGroupDefinition, Path.Combine(path, $"{entityTypeName}.asset")); } }
protected override bool VerifyEntityTypeCondition( [NotNull] string entityPropertyName, [NotNull] EntityTypeDefinition entityTypeDefinition, [NotNull] EntityProperties entityProperties) { Assert.ArgumentNotNull(entityPropertyName, "entityPropertyName"); Assert.ArgumentNotNull(entityTypeDefinition, "entityTypeDefinition"); Assert.ArgumentNotNull(entityProperties, "entityProperties"); string entityPropertyValue; EntityPropertyValue entityProperty = entityProperties["ows_" + entityPropertyName]; if (entityProperty != null) { entityPropertyValue = entityProperty.Value; } else { if (entityPropertyName != "ContentTypeId") { return(false); } entityPropertyValue = entityProperties.GetMetaInfoProperty(entityPropertyName); } if (string.IsNullOrEmpty(entityPropertyValue)) { return(false); } foreach (string entityTypePropertyValue in entityTypeDefinition.Properties[entityPropertyName]) { if (entityPropertyName == "ContentTypeId" ? entityPropertyValue.StartsWith(entityTypePropertyValue) : entityPropertyValue == entityTypePropertyValue) { return(true); } } return(false); }
private void InitializeDbModelNavigationProperties() { var typeInfos = CandidateTypes.Where(x => TypeHelper.IsEntity(x.Value)) .Select(x => x.Value.GetTypeInfo()).ToList(); var excludeTypeList = new List <string> { nameof(EntityBase), nameof(IObjectState), }; foreach (var item in typeInfos) { if (excludeTypeList.Contains(item.Name)) { continue; } Type itemType = item.AsType(); var checkGenericType = itemType.GetGenericArguments(); if (checkGenericType != null && checkGenericType.Count() > 0) { itemType = itemType.GetGenericArguments()[0]; } var props = item.AsType().GetProperties(); foreach (var prop in props) { Type underlyingType = null; string fullname = prop.PropertyType.FullName; bool isCollection = false; EntityTypeDefinition definition = new EntityTypeDefinition(); if (typeof(ICollection <IObjectState>).IsAssignableFrom(prop.PropertyType) || typeof(IEnumerable <IObjectState>).IsAssignableFrom(prop.PropertyType)) { isCollection = true; underlyingType = prop.PropertyType.GetGenericArguments()[0]; fullname = underlyingType.FullName; } if (underlyingType == null && TypeHelper.IsEntity(prop.PropertyType)) { underlyingType = prop.PropertyType; } if (underlyingType != null) { definition.PropertyName = prop.Name; definition.IsCollection = isCollection; definition.Metadata = fullname; List <EntityTypeDefinition> definitions = new List <EntityTypeDefinition>(); if (NavigationProperties.TryGetValue(itemType.FullName, out definitions)) { definitions.Add(definition); } else { definitions = new List <EntityTypeDefinition> { definition }; NavigationProperties.Add(itemType.FullName, definitions); } } } } }