From 988bca844b1c13878f16c6e5367ecc473212a553 Mon Sep 17 00:00:00 2001 From: Dev Date: Fri, 3 Apr 2026 10:24:32 +0200 Subject: [PATCH] feat(04-10): register Phase 4 DI + wire MainWindow tabs + TemplatesView - App.xaml.cs: register TemplateRepository, GraphClientFactory, ICsvValidationService, BulkResultCsvExportService - App.xaml.cs: register BulkMemberService, BulkSiteService, ITemplateService, IFolderStructureService - App.xaml.cs: register all 5 Phase 4 ViewModels and Views (Transfer, BulkMembers, BulkSites, FolderStructure, Templates) - MainWindow.xaml: replace 3 FeatureTabBase stub tabs with 5 named TabItems (tab.transfer through tab.templates) - MainWindow.xaml.cs: wire all 5 new TabItem.Content from DI-resolved Views --- SharepointToolbox/App.xaml.cs | 28 +++++++++++++++++++++++++++- SharepointToolbox/MainWindow.xaml | 18 ++++++++++++------ SharepointToolbox/MainWindow.xaml.cs | 7 +++++++ 3 files changed, 46 insertions(+), 7 deletions(-) diff --git a/SharepointToolbox/App.xaml.cs b/SharepointToolbox/App.xaml.cs index bbaf1c4..2348393 100644 --- a/SharepointToolbox/App.xaml.cs +++ b/SharepointToolbox/App.xaml.cs @@ -119,12 +119,38 @@ public partial class App : Application services.AddTransient>(sp => profile => new SitePickerDialog(sp.GetRequiredService(), profile)); + // Phase 4: Bulk Operations Infrastructure + var templatesDir = Path.Combine(appData, "templates"); + services.AddSingleton(_ => new TemplateRepository(templatesDir)); + services.AddSingleton(); + services.AddTransient(); + services.AddTransient(); + // Phase 4: File Transfer services.AddTransient(); - services.AddTransient(); services.AddTransient(); services.AddTransient(); + // Phase 4: Bulk Members + services.AddTransient(); + services.AddTransient(); + services.AddTransient(); + + // Phase 4: Bulk Sites + services.AddTransient(); + services.AddTransient(); + services.AddTransient(); + + // Phase 4: Templates + services.AddTransient(); + services.AddTransient(); + services.AddTransient(); + + // Phase 4: Folder Structure + services.AddTransient(); + services.AddTransient(); + services.AddTransient(); + services.AddSingleton(); } } diff --git a/SharepointToolbox/MainWindow.xaml b/SharepointToolbox/MainWindow.xaml index a7fe28c..8598300 100644 --- a/SharepointToolbox/MainWindow.xaml +++ b/SharepointToolbox/MainWindow.xaml @@ -53,14 +53,20 @@ - - + - - + - - + + + + + (); + // Phase 4: Replace stub tabs with DI-resolved Views + TransferTabItem.Content = serviceProvider.GetRequiredService(); + BulkMembersTabItem.Content = serviceProvider.GetRequiredService(); + BulkSitesTabItem.Content = serviceProvider.GetRequiredService(); + FolderStructureTabItem.Content = serviceProvider.GetRequiredService(); + TemplatesTabItem.Content = serviceProvider.GetRequiredService(); + // Replace Settings tab placeholder with the DI-resolved SettingsView SettingsTabItem.Content = serviceProvider.GetRequiredService();