using System.Collections.ObjectModel; using System.Threading; using System.Threading.Tasks; using CommunityToolkit.Mvvm.Input; using Microsoft.Extensions.Logging; using SharepointToolbox.Core.Models; using SharepointToolbox.Services; namespace SharepointToolbox.ViewModels.Tabs; /// /// STUB: PermissionsViewModel — RED phase. Not yet implemented. /// public partial class PermissionsViewModel : FeatureViewModelBase { private readonly IPermissionsService _permissionsService; private readonly ISiteListService _siteListService; private readonly ISessionManager _sessionManager; public ObservableCollection SelectedSites { get; } = new(); public ObservableCollection Results { get; private set; } = new(); internal TenantProfile? _currentProfile; public PermissionsViewModel( IPermissionsService permissionsService, ISiteListService siteListService, ISessionManager sessionManager, ILogger logger) : base(logger) { _permissionsService = permissionsService; _siteListService = siteListService; _sessionManager = sessionManager; } public void SetCurrentProfile(TenantProfile profile) => _currentProfile = profile; internal Task TestRunOperationAsync(CancellationToken ct, IProgress progress) => RunOperationAsync(ct, progress); protected override async Task RunOperationAsync(CancellationToken ct, IProgress progress) { // RED STUB: always throws to make tests fail at RED phase throw new NotImplementedException("PermissionsViewModel.RunOperationAsync not yet implemented."); } }