| 04-bulk-operations-and-provisioning |
07 |
ui |
| wpf |
| xaml |
| localization |
| resx |
| dialogs |
| csv |
| embedded-resources |
|
| phase |
provides |
| 04-02 |
CSV import infrastructure used by bulk tabs |
|
| phase |
provides |
| 04-03 |
FolderStructureService used by FolderBrowserDialog context |
|
| phase |
provides |
| 04-04 |
BulkMemberService driving bulkmembers localization keys |
|
| phase |
provides |
| 04-05 |
BulkSiteService driving bulksites localization keys |
|
| phase |
provides |
| 04-06 |
TemplateService driving templates localization keys |
|
|
| All Phase 4 EN/FR localization keys in Strings.resx and Strings.fr.resx |
| ResourceManager accessors in Strings.Designer.cs for all new Phase 4 keys |
| ConfirmBulkOperationDialog XAML dialog with Proceed/Cancel buttons |
| FolderBrowserDialog XAML dialog with lazy-loading TreeView of SharePoint libraries/folders |
| Example CSV embedded resources |
| bulk_add_members.csv, bulk_create_sites.csv, folder_structure.csv |
|
|
|
| added |
patterns |
|
|
| EmbeddedResource CSV files accessible at runtime via Assembly.GetManifestResourceStream |
| FolderBrowserDialog lazy-loads sub-folders on TreeViewItem expand to avoid full tree fetch upfront |
| ConfirmBulkOperationDialog receives pre-formatted message string from caller (no binding to ViewModel) |
|
|
| created |
modified |
| SharepointToolbox/Views/Dialogs/ConfirmBulkOperationDialog.xaml |
| SharepointToolbox/Views/Dialogs/ConfirmBulkOperationDialog.xaml.cs |
| SharepointToolbox/Views/Dialogs/FolderBrowserDialog.xaml |
| SharepointToolbox/Views/Dialogs/FolderBrowserDialog.xaml.cs |
| SharepointToolbox/Resources/bulk_add_members.csv |
| SharepointToolbox/Resources/bulk_create_sites.csv |
| SharepointToolbox/Resources/folder_structure.csv |
|
| SharepointToolbox/Localization/Strings.resx |
| SharepointToolbox/Localization/Strings.fr.resx |
| SharepointToolbox/Localization/Strings.Designer.cs |
| SharepointToolbox/SharepointToolbox.csproj |
|
|
| FolderBrowserDialog uses Core.Helpers.ExecuteQueryRetryHelper (not Infrastructure.Auth) — consistent with established project namespace pattern |
| Example CSV files placed in Resources/ and registered as EmbeddedResource — accessible via Assembly.GetManifestResourceStream without file system dependency |
|
| FolderBrowserDialog lazy-expand pattern: dummy Loading... child node replaced on first expand event |
| FolderNodeInfo record used as TreeViewItem.Tag for type-safe selection result |
|
|
15min |
2026-04-03 |