public static bool ContainsBuilder(this IMoleculeBuildingBlock buildingBlock, IObjectBase entity)
        {
            if (!entity.CouldBeInMoleculeBuildingBlock())
            {
                return(false);
            }

            if (entity.IsAnImplementationOf <IMoleculeBuilder>())
            {
                return(buildingBlock.Contains((IMoleculeBuilder)entity));
            }

            if (entity.IsAnImplementationOf <ITransportBuilder>())
            {
                var transporterMoleculeContainers = buildingBlock.SelectMany(mb => mb.TransporterMoleculeContainerCollection);
                var allTransports = transporterMoleculeContainers.SelectMany(x => x.ActiveTransportRealizations);
                return(allTransports.Any(child => child.Equals(entity)));
            }

            var allChildren = buildingBlock.SelectMany(mb => mb.GetAllChildren <IEntity>());

            return(allChildren.Any(child => child.Equals(entity)));
        }
Beispiel #2
0
 private bool canHandle(IObjectBase objectBase)
 {
     return(objectBase.CouldBeInMoleculeBuildingBlock());
 }