diff --git a/SharepointToolbox/ViewModels/Tabs/TransferViewModel.cs b/SharepointToolbox/ViewModels/Tabs/TransferViewModel.cs index a614bc7..45c8ecd 100644 --- a/SharepointToolbox/ViewModels/Tabs/TransferViewModel.cs +++ b/SharepointToolbox/ViewModels/Tabs/TransferViewModel.cs @@ -17,6 +17,7 @@ public partial class TransferViewModel : FeatureViewModelBase private readonly BulkResultCsvExportService _exportService; private readonly ILogger _logger; private TenantProfile? _currentProfile; + private bool _hasLocalSourceSiteOverride; // Source selection [ObservableProperty] private string _sourceSiteUrl = string.Empty; @@ -61,6 +62,26 @@ public partial class TransferViewModel : FeatureViewModelBase ExportFailedCommand = new AsyncRelayCommand(ExportFailedAsync, () => HasFailures); } + protected override void OnGlobalSitesChanged(IReadOnlyList sites) + { + if (_hasLocalSourceSiteOverride) return; + SourceSiteUrl = sites.Count > 0 ? sites[0].Url : string.Empty; + } + + partial void OnSourceSiteUrlChanged(string value) + { + if (string.IsNullOrWhiteSpace(value)) + { + _hasLocalSourceSiteOverride = false; + if (GlobalSites.Count > 0) + SourceSiteUrl = GlobalSites[0].Url; + } + else if (GlobalSites.Count == 0 || value != GlobalSites[0].Url) + { + _hasLocalSourceSiteOverride = true; + } + } + protected override async Task RunOperationAsync(CancellationToken ct, IProgress progress) { if (_currentProfile == null) @@ -152,6 +173,7 @@ public partial class TransferViewModel : FeatureViewModelBase protected override void OnTenantSwitched(TenantProfile profile) { _currentProfile = profile; + _hasLocalSourceSiteOverride = false; SourceSiteUrl = string.Empty; SourceLibrary = string.Empty; SourceFolderPath = string.Empty;