private MenuItem ToMenu(CodeProject project) { MenuItem projectMenu = _provider.GetRequiredService <MenuItem>(); projectMenu.Id = project.Id; projectMenu.Text = $"{project.Name}[{project.NamespacePrefix}]"; projectMenu.Type = MenuItemType.Project; projectMenu.Icon = PackIconMaterialKind.AlphaPBoxOutline; ProjectViewModel projectModel = project.ToViewModel(); projectMenu.Screen = projectModel; foreach (CodeModule module in project.Modules) { MenuItem moduleMenu = _provider.GetRequiredService <MenuItem>(); moduleMenu.Id = module.Id; moduleMenu.Text = $"{module.Display}[{module.Name}]"; moduleMenu.Type = MenuItemType.Module; moduleMenu.Icon = PackIconMaterialKind.AlphaMBoxOutline; ModuleViewModel moduleModel = module.ToViewModel(projectModel); moduleMenu.Screen = moduleModel; foreach (CodeEntity entity in module.Entities) { MenuItem entityMenu = _provider.GetRequiredService <MenuItem>(); entityMenu.Id = entity.Id; entityMenu.Text = $"{entity.Display}[{entity.Name}]"; entityMenu.Type = MenuItemType.Entity; entityMenu.Icon = PackIconMaterialKind.AlphaEBoxOutline; EntityViewModel entityModel = entity.ToViewModel(moduleModel); entityMenu.Screen = entityModel; moduleMenu.ItemMenus.Add(entityMenu); } projectMenu.ItemMenus.Add(moduleMenu); } return(projectMenu); }