public override bool CanResolveParameters() { var root = _formulaUsable?.RootContainer; if (root == null) { return(false); } _useablePath = _pathFactory.CreateObjectPathFrom(root.Name, _formulaUsable.Name, AppConstants.Parameters.MOLECULAR_WEIGHT); return(_useablePath.TryResolve <IFormulaUsable>(root) != null); }
public IParameter GetPossibleParameterFromProject(IObjectPath parameterPath) { foreach (var topContainer in Context.CurrentProject.SpatialStructureCollection.SelectMany(spatialStructure => spatialStructure.TopContainers)) { var parameter = parameterPath.TryResolve <IParameter>(topContainer, out _); if (parameter != null) { return(parameter); } } return(null); }
private static IParameter searchParameterInContainers(IObjectPath parameterPath, IMoBiSpatialStructure spatialStructure) { if (spatialStructure == null) { return(null); } IParameter parameter = null; foreach (var top in spatialStructure.TopContainers) { parameter = parameterPath.TryResolve <IParameter>(top); if (parameter != null) { break; } } if (parameter == null) { parameter = parameterPath.TryResolve <IParameter>(spatialStructure.NeighborhoodsContainer); } return(parameter); }
public bool HasCircularReference(IObjectPath path, IEntity referenceObject) { try { var referencedObject = path.TryResolve <IUsingFormula>(referenceObject); if (referencedObject == null) { return(false); } if (referencedObject == referenceObject) { return(true); } buildEntityReferenceCache(referencedObject); return(_entityReferenceCache[referencedObject].Contains(referenceObject)); } finally { _entityReferenceCache.Clear(); } }