public void CreateComplexes()
{
var complexes = DefinitionFile.Entities.Where(e => e.States.SourceText.IsEmptyOrWhitespace() && e.Composition.SourceText.Contains("."));
foreach (var complex in complexes)
{
var complexNode = new BcsComplexNode() { Name = complex.Name };
var compoennts = complex.Composition.SourceText.Split('.').Select(name =>
{
name = name.Trim();
var matchingComponent = DefinitionFile.Components.SingleOrDefault(component => component.Name == name);
if (matchingComponent == null)
{
complexNode.Errors.Add(new NodeError($"Failed to find matching component named {name} in the definition file."));
var dummyComponent = new BcsComponentNode() { Name = name };
DefinitionFile.Components.Add(dummyComponent);
return dummyComponent;
}
return matchingComponent;
}).ToList();
complexNode.Components.AddRange(compoennts);
DefinitionFile.Complexes.Add(complexNode);
}
}