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.");
}
}