public IEntityList <ITrueEntity> ConvertToTrueEntityList() { EntityList <ITrueEntity> result = new EntityList <ITrueEntity>(); foreach (T entity in this) { ITrueEntity trueEntity; if (TrueEntity.TryToTrueEntity(entity, out trueEntity)) { result.Add(trueEntity); } } return(result); }
/// <summary> /// Convert all IRelationshipEntity to corresponding IRelationship. /// </summary> /// <param name="builder"></param> /// <returns></returns> public static void UseConvertRelationshipEntityToRelationshipRule(IEntityGraphBuilder builder) { foreach (IEntityList <IEntity> sentence in builder.Source.Split(new IEntity[] { SeparatorEntity.Dot, SeparatorEntity.Comma })) { IEntity[] relationshipEntities = sentence.FindAllByType(typeof(RelationshipEntity)); if (relationshipEntities != null && relationshipEntities.Length == 1) { IEntity[] leftClassEntities = sentence.GetLeftPartFrom(relationshipEntities[0]).FindAllByType(typeof(IClassEntity)); IEntity[] rightClassEntities = sentence.GetRightPartFrom(relationshipEntities[0]).FindAllByType(typeof(IClassEntity)); if (leftClassEntities != null && leftClassEntities.Length == 1 && rightClassEntities != null && rightClassEntities.Length == 1) { //Add Relationship IRelationship relation = RelationshipAdapter.CreateRelationship(relationshipEntities[0] as RelationshipEntity); relation.Entities.Add(TrueEntity.ToTrueEntity(leftClassEntities[0])); relation.Entities.Add(TrueEntity.ToTrueEntity(rightClassEntities[0])); builder.Add(relation); } } } }