Example #1
0
        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);
        }