55 lines
1.9 KiB
C#
55 lines
1.9 KiB
C#
using System.Windows;
|
|
using System.Windows.Controls;
|
|
using SharepointToolbox.Core.Models;
|
|
using SharepointToolbox.Services;
|
|
using SharepointToolbox.Views.Dialogs;
|
|
|
|
namespace SharepointToolbox.Views.Tabs;
|
|
|
|
public partial class VersionCleanupView : UserControl
|
|
{
|
|
private readonly ViewModels.Tabs.VersionCleanupViewModel _viewModel;
|
|
private readonly ISessionManager _sessionManager;
|
|
private readonly IVersionCleanupService _versionService;
|
|
|
|
public VersionCleanupView(
|
|
ViewModels.Tabs.VersionCleanupViewModel viewModel,
|
|
ISessionManager sessionManager,
|
|
IVersionCleanupService versionService)
|
|
{
|
|
InitializeComponent();
|
|
_viewModel = viewModel;
|
|
_sessionManager = sessionManager;
|
|
_versionService = versionService;
|
|
DataContext = viewModel;
|
|
|
|
viewModel.PickLibrariesAsync = async (siteUrl, preselected) =>
|
|
{
|
|
if (viewModel.CurrentProfile == null) return null;
|
|
var profile = new TenantProfile
|
|
{
|
|
TenantUrl = siteUrl,
|
|
ClientId = viewModel.CurrentProfile.ClientId,
|
|
Name = viewModel.CurrentProfile.Name,
|
|
};
|
|
var ctx = await _sessionManager.GetOrCreateContextAsync(profile, CancellationToken.None);
|
|
var dlg = new LibraryPickerDialog(ctx, _versionService, preselected)
|
|
{
|
|
Owner = Window.GetWindow(this)
|
|
};
|
|
if (dlg.ShowDialog() != true) return null;
|
|
return dlg.SelectedLibraryTitles;
|
|
};
|
|
|
|
viewModel.ConfirmAction = msg =>
|
|
{
|
|
var result = MessageBox.Show(
|
|
Window.GetWindow(this), msg,
|
|
Localization.TranslationSource.Instance["versions.tab"],
|
|
MessageBoxButton.OKCancel,
|
|
MessageBoxImage.Warning);
|
|
return result == MessageBoxResult.OK;
|
|
};
|
|
}
|
|
}
|