This commit is contained in:
Matt Parker [SSW]
2025-01-10 20:14:19 +10:00
parent 3178cea5a3
commit 006b2dddaa
2 changed files with 12 additions and 7 deletions

View File

@@ -6,7 +6,7 @@
return; return;
} }
<MudTreeView T="ProjectInSolution" Dense="true"> <MudTreeView T="ProjectInSolution" Dense="true" >
@foreach(var project in _rootNodes) @foreach(var project in _rootNodes)
{ {
@GetProjectFragment(project) @GetProjectFragment(project)
@@ -18,11 +18,11 @@
private SolutionFile _solutionFile = null!; private SolutionFile _solutionFile = null!;
private List<ProjectInSolution> _rootNodes = []; private List<ProjectInSolution> _rootNodes = [];
private Dictionary<string, Folder> _folders = new(); private Dictionary<string, Folder?> _folders = new();
private RenderFragment GetProjectFragment(ProjectInSolution project) => private RenderFragment GetProjectFragment(ProjectInSolution project) =>
@<text> @<text>
<MudTreeViewItem Value="project" Text="@project.ProjectName"> <MudTreeViewItem TextTypo="Typo.body2" Icon="@Icons.Material.Filled.Folder" IconColor="Color.Primary" Value="project" Text="@project.ProjectName">
@foreach(var child in _solutionFile.ProjectsByGuid.Values.Where(s => s.ParentProjectGuid == project.ProjectGuid).OrderBy(s => s.ProjectName)) @foreach(var child in _solutionFile.ProjectsByGuid.Values.Where(s => s.ParentProjectGuid == project.ProjectGuid).OrderBy(s => s.ProjectName))
{ {
@GetProjectFragment(child) @GetProjectFragment(child)
@@ -38,7 +38,7 @@
@<text> @<text>
@foreach (var subFolder in folder.Folders) @foreach (var subFolder in folder.Folders)
{ {
<MudTreeViewItem @bind-Expanded="subFolder.Expanded" T="ProjectInSolution" Text="@subFolder.Name"> <MudTreeViewItem TextTypo="Typo.body2" @bind-Expanded="subFolder.Expanded" T="ProjectInSolution" Text="@subFolder.Name">
@if (subFolder.Expanded) @if (subFolder.Expanded)
{ {
@GetFolderFragment(subFolder) @GetFolderFragment(subFolder)
@@ -47,11 +47,16 @@
} }
@foreach (var file in folder.Files) @foreach (var file in folder.Files)
{ {
<MudTreeViewItem T="ProjectInSolution" Text="@file.Name" /> <MudTreeViewItem TextTypo="Typo.body2" T="ProjectInSolution" Text="@file.Name" />
} }
</text>; </text>;
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
{
await Task.Run(() => LoadSolution("D:/matth/Documents/Git/amazon/ClientPortal.sln"));
}
private void LoadSolution(string solutionPath)
{ {
var solutionFile = GetNodesInSolution.ParseSolutionFileFromPath("D:/matth/Documents/Git/amazon/ClientPortal.sln"); var solutionFile = GetNodesInSolution.ParseSolutionFileFromPath("D:/matth/Documents/Git/amazon/ClientPortal.sln");
ArgumentNullException.ThrowIfNull(solutionFile); ArgumentNullException.ThrowIfNull(solutionFile);
@@ -74,7 +79,7 @@
return (s, rootFolder); return (s, rootFolder);
}) })
.ToDictionary(s => s.s.ProjectGuid, s => s.Item2); .ToDictionary(s => s.s.ProjectGuid, s => s.Item2);
_folders = folders2; _folders = folders2!;
} }
} }

View File

@@ -9,7 +9,7 @@
<MudAppBar Dense="true"> <MudAppBar Dense="true">
<MudIconButton Icon="@Icons.Material.Filled.Menu" Color="Color.Inherit" Edge="Edge.Start" OnClick="@((e) => DrawerToggle())" /> <MudIconButton Icon="@Icons.Material.Filled.Menu" Color="Color.Inherit" Edge="Edge.Start" OnClick="@((e) => DrawerToggle())" />
</MudAppBar> </MudAppBar>
<MudDrawer @bind-Open="@_drawerOpen" ClipMode="DrawerClipMode.Always"> <MudDrawer @bind-Open="@_drawerOpen" Width="400px" ClipMode="DrawerClipMode.Always">
<SolutionExplorer /> <SolutionExplorer />
@* <NavMenu/> *@ @* <NavMenu/> *@
</MudDrawer> </MudDrawer>