diff --git a/src/SharpIDE.Application/Features/SolutionDiscovery/GetNodesInSolution.cs b/src/SharpIDE.Application/Features/SolutionDiscovery/GetNodesInSolution.cs
index 28a6508..b7995aa 100644
--- a/src/SharpIDE.Application/Features/SolutionDiscovery/GetNodesInSolution.cs
+++ b/src/SharpIDE.Application/Features/SolutionDiscovery/GetNodesInSolution.cs
@@ -1,6 +1,12 @@
-namespace SharpIDE.Application.Features.SolutionDiscovery;
+using Microsoft.Build.Construction;
-public class GetNodesInSolution
+namespace SharpIDE.Application.Features.SolutionDiscovery;
+
+public static class GetNodesInSolution
{
-
+ public static SolutionFile? ParseSolutionFileFromPath(string solutionFilePath)
+ {
+ var solutionFile = SolutionFile.Parse(solutionFilePath);
+ return solutionFile;
+ }
}
diff --git a/src/SharpIDE.Photino/Pages/Home.razor b/src/SharpIDE.Photino/Pages/Home.razor
index 195ca1b..8951c04 100644
--- a/src/SharpIDE.Photino/Pages/Home.razor
+++ b/src/SharpIDE.Photino/Pages/Home.razor
@@ -1,7 +1,45 @@
@page "/"
+@using Microsoft.Build.Construction
+@using SharpIDE.Application.Features.SolutionDiscovery
Welcome to a new Photino Blazor app!
+@if (_solutionFile is null)
+{
+ return;
+}
+
+
+ @foreach(var project in _rootNodes)
+ {
+ @GetProjectFragment(project)
+ }
+
+
+
@code {
+ private SolutionFile _solutionFile = null!;
+ private List _rootNodes = [];
+
+ private RenderFragment GetProjectFragment(ProjectInSolution project) =>
+ @
+
+ @foreach(var child in _solutionFile.ProjectsByGuid.Values.Where(s => s.ParentProjectGuid == project.ProjectGuid).OrderBy(s => s.ProjectName))
+ {
+ @GetProjectFragment(child)
+ }
+
+ ;
+
+ protected override async Task OnInitializedAsync()
+ {
+ var solutionFile = GetNodesInSolution.ParseSolutionFileFromPath("D:/matth/Documents/Git/amazon/ClientPortal.sln");
+ ArgumentNullException.ThrowIfNull(solutionFile);
+ _solutionFile = solutionFile;
+ var rootNodes = solutionFile.ProjectsByGuid.Values.Where(p => p.ParentProjectGuid == null).OrderBy(s => s.ProjectName).ToList();
+ _rootNodes = rootNodes;
+ Console.WriteLine();
+ }
+
}