private static void GetDependsOnWriteableDataStructure(DataStructureInfo dataStructure, List <DataStructureInfo> dependencies, IDslModel allConcepts, IConceptInfo errorContext, HashSet <string> done) { var conceptKey = dataStructure.GetKey(); if (done.Contains(conceptKey)) { return; } done.Add(conceptKey); if (dataStructure is EntityInfo) { dependencies.Add(dataStructure); } else if (dataStructure is SqlQueryableInfo) { var deps = allConcepts.FindByType <SqlDependsOnDataStructureInfo>().Where(dep => dep.Dependent == dataStructure).ToArray(); foreach (var dep in deps) { GetDependsOnWriteableDataStructure(dep.DependsOn, dependencies, allConcepts, errorContext, done); } } else { throw new DslSyntaxException(errorContext.GetKeywordOrTypeName() + " is not supported on dependency type '" + dataStructure.GetKeywordOrTypeName() + "'. " + errorContext.GetUserDescription() + " depends on " + dataStructure.GetUserDescription() + "."); } }
public static void CheckIfPropertyBelongsToDataStructure(PropertyInfo property, DataStructureInfo dataStructure, IConceptInfo errorContext) { if (property.DataStructure != dataStructure) throw new Exception(String.Format( "Invalid use of " + errorContext.GetKeywordOrTypeName() + ": Property {0}.{1}.{2} is not in data structure {3}.{4}.", property.DataStructure.Module.Name, property.DataStructure.Name, property.Name, dataStructure.Module.Name, dataStructure.Name)); }
public static void CheckIfPropertyBelongsToDataStructure(PropertyInfo property, DataStructureInfo dataStructure, IConceptInfo errorContext) { if (property.DataStructure != dataStructure) { throw new Exception(String.Format( "Invalid use of " + errorContext.GetKeywordOrTypeName() + ": Property {0}.{1}.{2} is not in data structure {3}.{4}.", property.DataStructure.Module.Name, property.DataStructure.Name, property.Name, dataStructure.Module.Name, dataStructure.Name)); } }
private static void GetDependsOnWriteableDataStructure(DataStructureInfo dataStructure, List<DataStructureInfo> dependencies, IEnumerable<IConceptInfo> allConcepts, IConceptInfo errorContext, HashSet<string> done) { var conceptKey = dataStructure.GetKey(); if (done.Contains(conceptKey)) return; done.Add(conceptKey); if (dataStructure is EntityInfo) dependencies.Add(dataStructure); else if (dataStructure is SqlQueryableInfo) { var deps = allConcepts.OfType<SqlDependsOnDataStructureInfo>().Where(dep => dep.Dependent == dataStructure).ToArray(); foreach (var dep in deps) GetDependsOnWriteableDataStructure(dep.DependsOn, dependencies, allConcepts, errorContext, done); } else throw new DslSyntaxException(errorContext.GetKeywordOrTypeName() + " is not supported on dependency type '" + dataStructure.GetKeywordOrTypeName() + "'. " + errorContext.GetUserDescription() + " depends on " + dataStructure.GetUserDescription() + "."); }