BcsResolver.File.BcsFileHandler.CreateComplexes C# (CSharp) Method

CreateComplexes() public method

public CreateComplexes ( ) : void
return void
        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);
            }
        }