public List <TreeNavigationItem> GetChildren(NavigationContext navigationContext, TreeNavigationItem parentTreeNavigationItem) { List <TreeNavigationItem> children = new List <TreeNavigationItem>(); switch (parentTreeNavigationItem.Type) { case NavigationType.PROJECT: children.AddRange(_folderNavigationRepository.FindRoots(parentTreeNavigationItem.Id)); break; case NavigationType.FOLDER: if (parentTreeNavigationItem.Name == "PrimitiveTypes") { children.AddRange(_folderNavigationRepository.FindChildren(parentTreeNavigationItem.Id)); children.AddRange(_primitiveTypeNavigationRepository.FindChildren(parentTreeNavigationItem.Id)); } else { children.AddRange(_folderNavigationRepository.FindChildren(parentTreeNavigationItem.Id)); children.AddRange(_compositeTypeNavigationRepository.FindChildren(parentTreeNavigationItem.Id)); } break; case NavigationType.COMPOSITE_TYPE: children.AddRange(_compositeTypeElementNavigationRepository.FindChildren(parentTreeNavigationItem.Id)); break; } ExtendTreeNavigationItems(children, parentTreeNavigationItem); return(children); }
public GenerateCodeTypeTreeNavigationItem GetTypeToGenerate(Guid owningTypeId) { TreeNavigationItem compositeTypeTreeNavigationItem = _compositeTypeNavigationRepository.FindSpecific(owningTypeId); List <TreeNavigationItem> compositeTypeElementTreeNavigationItems = _compositeTypeElementNavigationRepository.FindChildren(owningTypeId); GenerateCodeTypeTreeNavigationItem generateCodeTypeTreeNavigationItem = new GenerateCodeTypeTreeNavigationItem(); generateCodeTypeTreeNavigationItem.Name = compositeTypeTreeNavigationItem.Name; List <GenerateCodeTypeElementTreeNavigationItem> generateCodeTypeElementTreeNavigationItems = new List <GenerateCodeTypeElementTreeNavigationItem>(); foreach (CompositeTypeElementTreeNavigationItem compositeTypeElementTreeNavigationItem in compositeTypeElementTreeNavigationItems) { generateCodeTypeTreeNavigationItem.Fields.Add(CreateGenerateCodeTypeElementTreeNavigationItem(compositeTypeElementTreeNavigationItem)); } return(generateCodeTypeTreeNavigationItem); }