diff --git a/src/SharpIDE.Application/Features/SolutionDiscovery/FileOrFolder.cs b/src/SharpIDE.Application/Features/SolutionDiscovery/FileOrFolder.cs index f75513b..87b324e 100644 --- a/src/SharpIDE.Application/Features/SolutionDiscovery/FileOrFolder.cs +++ b/src/SharpIDE.Application/Features/SolutionDiscovery/FileOrFolder.cs @@ -1,12 +1,14 @@ -namespace SharpIDE.Application.Features.SolutionDiscovery; +using SharpIDE.Application.Features.SolutionDiscovery.VsPersistence; -public class SharpIdeFile +namespace SharpIDE.Application.Features.SolutionDiscovery; + +public class SharpIdeFile : ISharpIdeNode { public required string Path { get; set; } public required string Name { get; set; } } -public class SharpIdeFolder +public class SharpIdeFolder : ISharpIdeNode { public required string Path { get; set; } public required string Name { get; set; } diff --git a/src/SharpIDE.Application/Features/SolutionDiscovery/VsPersistence/SharpIdeModels.cs b/src/SharpIDE.Application/Features/SolutionDiscovery/VsPersistence/SharpIdeModels.cs index 178ed9d..1d1c898 100644 --- a/src/SharpIDE.Application/Features/SolutionDiscovery/VsPersistence/SharpIdeModels.cs +++ b/src/SharpIDE.Application/Features/SolutionDiscovery/VsPersistence/SharpIdeModels.cs @@ -1,19 +1,21 @@ namespace SharpIDE.Application.Features.SolutionDiscovery.VsPersistence; -public class SharpIdeSolutionModel +public interface ISharpIdeNode; + +public class SharpIdeSolutionModel : ISharpIdeNode { public required string Name { get; set; } public required string FilePath { get; set; } public required List Projects { get; set; } public required List Folders { get; set; } } -public class SharpIdeSolutionFolder +public class SharpIdeSolutionFolder : ISharpIdeNode { public required string Name { get; set; } public required List Folders { get; set; } public required List Projects { get; set; } } -public class SharpIdeProjectModel +public class SharpIdeProjectModel : ISharpIdeNode { public required string Name { get; set; } public required string FilePath { get; set; } diff --git a/src/SharpIDE.Photino/Components/SolutionExplorer.razor b/src/SharpIDE.Photino/Components/SolutionExplorer.razor index a2ae8f0..9c561ca 100644 --- a/src/SharpIDE.Photino/Components/SolutionExplorer.razor +++ b/src/SharpIDE.Photino/Components/SolutionExplorer.razor @@ -5,18 +5,24 @@ { return; } - - - - @foreach (var folder in SolutionModel.Folders) - { - @GetSolutionFolderFragment(folder) - } - @foreach(var project in SolutionModel.Projects) - { - @GetProjectFragment(project) - } - + + + + @foreach (var folder in SolutionModel.Folders) + { + @GetSolutionFolderFragment(folder) + } + @foreach(var project in SolutionModel.Projects) + { + @GetProjectFragment(project) + } @@ -42,7 +48,7 @@ private RenderFragment GetSolutionFolderFragment(SharpIdeSolutionFolder slnFolder) => @ - + @foreach(var childFolder in slnFolder.Folders) { @GetSolutionFolderFragment(childFolder) @@ -56,10 +62,10 @@ private RenderFragment GetProjectFragment(SharpIdeProjectModel project) => @ - + @foreach (var folder in project.Folders) { - + @GetFolderFragment(folder) } @@ -74,7 +80,7 @@ @ @foreach (var subFolder in folder.Folders) { - + @if (subFolder.Expanded) { @GetFolderFragment(subFolder) @@ -89,7 +95,7 @@ private RenderFragment GetFileFragment(SharpIdeFile file) => @ - + ;