Skip to content

Feature: Profile Import CSV#3502

Merged
mergify[bot] merged 6 commits into
mainfrom
feature/3492-csv-import
Jun 28, 2026
Merged

Feature: Profile Import CSV#3502
mergify[bot] merged 6 commits into
mainfrom
feature/3492-csv-import

Conversation

@BornToBeRoot

Copy link
Copy Markdown
Owner

Changes proposed in this pull request

  • Import profiles from csv

Related issue(s)

Copilot generated summary

Provide a Copilot generated summary of the changes in this pull request.

Copilot summary

This pull request adds support for importing profiles from CSV files. It introduces a new CSV import source, a parser for CSV files, new UI components for the import process, and localized strings and settings to support the feature.

CSV Import Feature:

  • Added a new ProfileImportSource.Csv enum value to represent CSV as an import source.
  • Implemented CsvProfileImportParser to parse CSV files into ProfileImportCandidate objects, supporting auto-detection of delimiters and optional headers.
  • Created ImportCsvFileViewModel and integrated a new dialog flow (ShowImportCsvFileDialog) for importing profiles from CSV files in the UI. [1] [2] [3]
  • Added a file extension filter for CSV files to GlobalStaticConfiguration.
  • Updated ImportProfilesViewModel to include CSV as an available import method.

Localization and Settings:

  • Added new localized strings and resources for CSV import instructions, status messages, and file location examples in .resx and designer files. [1] [2] [3] [4]
  • Introduced a new setting, Profiles_ImportCsvLastFilePath, to remember the last used CSV file path.

To-Do

Contributing

By submitting this pull request, I confirm the following:

@mergify

mergify Bot commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

Tick the box to add this pull request to the merge queue (same as @mergifyio queue).

  • Queue this pull request

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR implements importing network profiles from a CSV file (closing #3492). It cleanly mirrors the existing Active Directory import architecture: a new import source is added to the method picker, a source-specific dialog parses the file into ProfileImportCandidates, and those candidates flow into the shared ImportProfilesResultViewModel for review, duplicate detection, and final import. The implementation reuses established patterns (child-window sizing, drag-and-drop, validators, RelayCommand, settings persistence, and localized resources), so it integrates consistently with the existing profile-import subsystem.

Changes:

  • Adds CsvProfileImportParser (delimiter auto-detection, optional header, quoted-field handling, SHA-256 based duplicate key) plus the ProfileImportSource.Csv enum value.
  • Adds the ImportCsvFileViewModel/ImportCsvFileChildWindow dialog and wires it into ProfileDialogManager and ImportProfilesViewModel, with a new Profiles_ImportCsvLastFilePath setting and CsvFileExtensionFilter.
  • Adds localized strings/designer entries plus documentation and changelog updates.

Reviewed changes

Copilot reviewed 13 out of 15 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
Source/NETworkManager.Profiles/CsvProfileImportParser.cs New CSV parser producing import candidates; minor doc-comment/behavior mismatch in delimiter detection.
Source/NETworkManager.Profiles/ProfileImportSource.cs Adds Csv enum value.
Source/NETworkManager/ViewModels/ImportCsvFileViewModel.cs New view model handling browse, drag/drop, parse, status, and path persistence.
Source/NETworkManager/ViewModels/ImportProfilesViewModel.cs Adds CSV as a selectable import method.
Source/NETworkManager/ProfileDialogManager.cs Adds ShowImportCsvFileDialog and routes the CSV source to the shared result dialog.
Source/NETworkManager/Views/ImportCsvFileChildWindow.xaml(.cs) New child window with file-path validation, help tooltip, and drag/drop.
Source/NETworkManager.Settings/SettingsInfo.cs Adds Profiles_ImportCsvLastFilePath setting.
Source/NETworkManager.Settings/GlobalStaticConfiguration.cs Adds CsvFileExtensionFilter.
Source/NETworkManager.Localization/Resources/Strings.resx + .Designer.cs Adds CSV import labels, hints, and status strings.
Source/NETworkManager.Localization/Resources/StaticStrings.resx + .Designer.cs Adds example CSV file-path watermark.
Website/docs/groups-and-profiles.md Documents the CSV import source and format.
Website/docs/changelog/next-release.md Adds changelog entry for CSV import.
Files not reviewed (2)
  • Source/NETworkManager.Localization/Resources/StaticStrings.Designer.cs: Generated file
  • Source/NETworkManager.Localization/Resources/Strings.Designer.cs: Generated file

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread Source/NETworkManager.Profiles/CsvProfileImportParser.cs Outdated
BornToBeRoot and others added 3 commits June 28, 2026 22:14
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@mergify mergify Bot merged commit 0fbe551 into main Jun 28, 2026
5 checks passed
@mergify mergify Bot deleted the feature/3492-csv-import branch June 28, 2026 22:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Import profiles from CSV

2 participants