diff --git a/src/SharpIDE.Godot/Features/Nuget/NugetPanel.cs b/src/SharpIDE.Godot/Features/Nuget/NugetPanel.cs index 73002bc..491180f 100644 --- a/src/SharpIDE.Godot/Features/Nuget/NugetPanel.cs +++ b/src/SharpIDE.Godot/Features/Nuget/NugetPanel.cs @@ -59,31 +59,8 @@ public partial class NugetPanel : Control _ = Task.GodotRun(async () => { if (_solution is null) throw new InvalidOperationException("Solution is null but should not be"); - _ = Task.GodotRun(PopulateSearchResults); - - _ = Task.GodotRun(async () => - { - var project = _solution.AllProjects.First(s => s.Name == "ProjectA"); - await project.MsBuildEvaluationProjectTask; - var installedPackages = await ProjectEvaluation.GetPackageReferencesForProject(project); - var idePackageResult = await _nugetClientService.GetPackagesForInstalledPackages(project.ChildNodeBasePath, installedPackages); - var scenes = idePackageResult.Select(s => - { - var scene = _packageEntryScene.Instantiate(); - scene.PackageResult = s; - scene.PackageSelected += OnPackageSelected; - return scene; - }).ToList(); - await this.InvokeAsync(() => - { - foreach (var scene in scenes) - { - var container = scene.PackageResult.InstalledNugetPackageInfo!.IsTransitive ? _implicitlyInstalledPackagesItemList : _installedPackagesVboxContainer; - container.AddChild(scene); - } - }); - }); + _ = Task.GodotRun(PopulateInstalledPackages); }); } @@ -111,4 +88,27 @@ public partial class NugetPanel : Control } }); } + + private async Task PopulateInstalledPackages() + { + var project = _solution!.AllProjects.First(s => s.Name == "ProjectA"); + await project.MsBuildEvaluationProjectTask; + var installedPackages = await ProjectEvaluation.GetPackageReferencesForProject(project); + var idePackageResult = await _nugetClientService.GetPackagesForInstalledPackages(project.ChildNodeBasePath, installedPackages); + var scenes = idePackageResult.Select(s => + { + var scene = _packageEntryScene.Instantiate(); + scene.PackageResult = s; + scene.PackageSelected += OnPackageSelected; + return scene; + }).ToList(); + await this.InvokeAsync(() => + { + foreach (var scene in scenes) + { + var container = scene.PackageResult.InstalledNugetPackageInfo!.IsTransitive ? _implicitlyInstalledPackagesItemList : _installedPackagesVboxContainer; + container.AddChild(scene); + } + }); + } } \ No newline at end of file