display sln folder files
This commit is contained in:
@@ -15,6 +15,7 @@ public class IntermediateSlnFolderModel
|
||||
public required SolutionFolderModel Model { get; set; }
|
||||
public required List<IntermediateSlnFolderModel> Folders { get; set; }
|
||||
public required List<IntermediateProjectModel> Projects { get; set; }
|
||||
public required List<IntermediateSlnFolderFileModel> Files { get; set; }
|
||||
}
|
||||
|
||||
public class IntermediateProjectModel
|
||||
@@ -23,3 +24,9 @@ public class IntermediateProjectModel
|
||||
public required string FullFilePath { get; set; }
|
||||
public required Guid Id { get; set; }
|
||||
}
|
||||
|
||||
public class IntermediateSlnFolderFileModel
|
||||
{
|
||||
public required string Name { get; set; }
|
||||
public required string FullPath { get; set; }
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ public class SharpIdeSolutionFolder : ISharpIdeNode
|
||||
public required string Name { get; set; }
|
||||
public required List<SharpIdeSolutionFolder> Folders { get; set; }
|
||||
public required List<SharpIdeProjectModel> Projects { get; set; }
|
||||
public required List<SharpIdeFile> Files { get; set; }
|
||||
public bool Expanded { get; set; }
|
||||
}
|
||||
public class SharpIdeProjectModel : ISharpIdeNode
|
||||
|
||||
@@ -22,6 +22,11 @@ public static class VsPersistenceMapper
|
||||
Folders = intermediateModel.SolutionFolders.Select(s => new SharpIdeSolutionFolder
|
||||
{
|
||||
Name = s.Model.Name,
|
||||
Files = s.Files.Select(x => new SharpIdeFile
|
||||
{
|
||||
Path = x.FullPath,
|
||||
Name = x.Name
|
||||
}).ToList(),
|
||||
Folders = s.Folders.Select(GetSharpIdeSolutionFolder).ToList(),
|
||||
Projects = s.Projects.Select(GetSharpIdeProjectModel).ToList()
|
||||
}).ToList(),
|
||||
@@ -41,11 +46,16 @@ public static class VsPersistenceMapper
|
||||
};
|
||||
|
||||
private static SharpIdeSolutionFolder GetSharpIdeSolutionFolder(IntermediateSlnFolderModel folderModel) => new SharpIdeSolutionFolder()
|
||||
{
|
||||
Name = folderModel.Model.Name,
|
||||
Files = folderModel.Files.Select(x => new SharpIdeFile
|
||||
{
|
||||
Name = folderModel.Model.Name,
|
||||
Folders = folderModel.Folders.Select(GetSharpIdeSolutionFolder).ToList(),
|
||||
Projects = folderModel.Projects.Select(GetSharpIdeProjectModel).ToList()
|
||||
};
|
||||
Path = x.FullPath,
|
||||
Name = x.Name
|
||||
}).ToList(),
|
||||
Folders = folderModel.Folders.Select(GetSharpIdeSolutionFolder).ToList(),
|
||||
Projects = folderModel.Projects.Select(GetSharpIdeProjectModel).ToList()
|
||||
};
|
||||
|
||||
private static async Task<IntermediateSolutionModel> GetIntermediateModel(string solutionFilePath,
|
||||
CancellationToken cancellationToken = default)
|
||||
@@ -92,11 +102,20 @@ public static class VsPersistenceMapper
|
||||
})
|
||||
.ToList();
|
||||
|
||||
var filesInFolder = folder.Files?
|
||||
.Select(f => new IntermediateSlnFolderFileModel
|
||||
{
|
||||
Name = Path.GetFileName(f),
|
||||
FullPath = new FileInfo(Path.Join(Path.GetDirectoryName(solutionFilePath), f)).FullName
|
||||
})
|
||||
.ToList() ?? [];
|
||||
|
||||
return new IntermediateSlnFolderModel
|
||||
{
|
||||
Model = folder,
|
||||
Folders = childFolders,
|
||||
Projects = projectsInFolder
|
||||
Projects = projectsInFolder,
|
||||
Files = filesInFolder
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,6 +56,10 @@
|
||||
{
|
||||
@GetProjectFragment(childProject)
|
||||
}
|
||||
@foreach(var file in slnFolder.Files)
|
||||
{
|
||||
@GetFileFragment(file)
|
||||
}
|
||||
}
|
||||
</MudTreeViewItem>
|
||||
</text>;
|
||||
|
||||
Reference in New Issue
Block a user