in EnvDTE.Client/Impl/ProjectModelImpl/ProjectsImplementation.cs [13:46]
public sealed class ProjectsImplementation([NotNull] DteImplementation dte) : Projects
{
private List<ProjectItemModel> ProjectModels => dte.DteProtocolModel.Solution_get_Projects.Sync(Unit.Instance);
[NotNull] public DTE Parent => dte;
public int Count => dte.DteProtocolModel.Solution_Count.Sync(Unit.Instance);
[NotNull] public DTE DTE => dte;
[NotNull]
IEnumerator Projects.GetEnumerator() => ProjectModels.Select(CreateProject).GetEnumerator();
IEnumerator IEnumerable.GetEnumerator() => (this as Projects).GetEnumerator();
[NotNull]
public Project Item(object index)
{
var i = ImplementationUtil.GetValidIndexOrThrow(index, Count);
return CreateProject(ProjectModels[i]);
}
internal ProjectImplementation Item(ProjectItemModel projectModel) => CreateProject(projectModel);
private ProjectImplementation CreateProject(ProjectItemModel projectModel) =>
ImplementationUtil.GetProjectImplementation(dte, projectModel);
#region NotImplemented
public Properties Properties => throw new NotImplementedException();
public string Kind => throw new NotImplementedException();
#endregion
}