add interface
This commit is contained in:
@@ -14,7 +14,10 @@ public interface IExpandableSharpIdeNode
|
|||||||
{
|
{
|
||||||
public bool Expanded { get; set; }
|
public bool Expanded { get; set; }
|
||||||
}
|
}
|
||||||
|
public interface ISolutionOrProject
|
||||||
|
{
|
||||||
|
public string DirectoryPath { get; set; }
|
||||||
|
}
|
||||||
public interface IFolderOrProject : IExpandableSharpIdeNode, IChildSharpIdeNode
|
public interface IFolderOrProject : IExpandableSharpIdeNode, IChildSharpIdeNode
|
||||||
{
|
{
|
||||||
public ObservableList<SharpIdeFolder> Folders { get; init; }
|
public ObservableList<SharpIdeFolder> Folders { get; init; }
|
||||||
@@ -43,7 +46,7 @@ public interface IChildSharpIdeNode
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class SharpIdeSolutionModel : ISharpIdeNode, IExpandableSharpIdeNode
|
public class SharpIdeSolutionModel : ISharpIdeNode, IExpandableSharpIdeNode, ISolutionOrProject
|
||||||
{
|
{
|
||||||
public required string Name { get; set; }
|
public required string Name { get; set; }
|
||||||
public required string FilePath { get; set; }
|
public required string FilePath { get; set; }
|
||||||
@@ -91,11 +94,12 @@ public class SharpIdeSolutionFolder : ISharpIdeNode, IExpandableSharpIdeNode, IC
|
|||||||
Projects = new ObservableHashSet<SharpIdeProjectModel>(intermediateModel.Projects.Select(x => new SharpIdeProjectModel(x, allProjects, allFiles, allFolders, this)));
|
Projects = new ObservableHashSet<SharpIdeProjectModel>(intermediateModel.Projects.Select(x => new SharpIdeProjectModel(x, allProjects, allFiles, allFolders, this)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public class SharpIdeProjectModel : ISharpIdeNode, IExpandableSharpIdeNode, IChildSharpIdeNode, IFolderOrProject
|
public class SharpIdeProjectModel : ISharpIdeNode, IExpandableSharpIdeNode, IChildSharpIdeNode, IFolderOrProject, ISolutionOrProject
|
||||||
{
|
{
|
||||||
public required string Name { get; set; }
|
public required string Name { get; set; }
|
||||||
public required string FilePath { get; set; }
|
public required string FilePath { get; set; }
|
||||||
public string ChildNodeBasePath => Path.GetDirectoryName(FilePath)!;
|
public required string DirectoryPath { get; set; }
|
||||||
|
public string ChildNodeBasePath => DirectoryPath;
|
||||||
public required ObservableList<SharpIdeFolder> Folders { get; init; }
|
public required ObservableList<SharpIdeFolder> Folders { get; init; }
|
||||||
public required ObservableList<SharpIdeFile> Files { get; init; }
|
public required ObservableList<SharpIdeFile> Files { get; init; }
|
||||||
public bool Expanded { get; set; }
|
public bool Expanded { get; set; }
|
||||||
@@ -110,6 +114,7 @@ public class SharpIdeProjectModel : ISharpIdeNode, IExpandableSharpIdeNode, IChi
|
|||||||
Parent = parent;
|
Parent = parent;
|
||||||
Name = projectModel.Model.ActualDisplayName;
|
Name = projectModel.Model.ActualDisplayName;
|
||||||
FilePath = projectModel.FullFilePath;
|
FilePath = projectModel.FullFilePath;
|
||||||
|
DirectoryPath = Path.GetDirectoryName(projectModel.FullFilePath)!;
|
||||||
Files = new ObservableList<SharpIdeFile>(TreeMapperV2.GetFiles(projectModel.FullFilePath, this, allFiles));
|
Files = new ObservableList<SharpIdeFile>(TreeMapperV2.GetFiles(projectModel.FullFilePath, this, allFiles));
|
||||||
Folders = new ObservableList<SharpIdeFolder>(TreeMapperV2.GetSubFolders(projectModel.FullFilePath, this, allFiles, allFolders));
|
Folders = new ObservableList<SharpIdeFolder>(TreeMapperV2.GetSubFolders(projectModel.FullFilePath, this, allFiles, allFolders));
|
||||||
MsBuildEvaluationProjectTask = ProjectEvaluation.GetProject(projectModel.FullFilePath);
|
MsBuildEvaluationProjectTask = ProjectEvaluation.GetProject(projectModel.FullFilePath);
|
||||||
|
|||||||
Reference in New Issue
Block a user