From 3d62b2c48b04f16f4b439fcd34c76b88c2ebd9c5 Mon Sep 17 00:00:00 2001 From: Dev Date: Fri, 3 Apr 2026 11:06:25 +0200 Subject: [PATCH] fix(04): resolve null-reference crashes in CsvValidationService and TransferView - Add null-conditional on CsvReader.Context.Parser to fix CS8602 warnings - Guard ConflictCombo_SelectionChanged against null ViewModel during XAML init Co-Authored-By: Claude Opus 4.6 (1M context) --- SharepointToolbox/Services/CsvValidationService.cs | 4 ++-- SharepointToolbox/Views/Tabs/TransferView.xaml.cs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/SharepointToolbox/Services/CsvValidationService.cs b/SharepointToolbox/Services/CsvValidationService.cs index 3422736..abb4134 100644 --- a/SharepointToolbox/Services/CsvValidationService.cs +++ b/SharepointToolbox/Services/CsvValidationService.cs @@ -35,14 +35,14 @@ public class CsvValidationService : ICsvValidationService var record = csv.GetRecord(); if (record == null) { - rows.Add(CsvValidationRow.ParseError(csv.Context.Parser.RawRecord, "Failed to parse row")); + rows.Add(CsvValidationRow.ParseError(csv.Context.Parser?.RawRecord ?? string.Empty, "Failed to parse row")); continue; } rows.Add(new CsvValidationRow(record, new List())); } catch (Exception ex) { - rows.Add(CsvValidationRow.ParseError(csv.Context.Parser.RawRecord, ex.Message)); + rows.Add(CsvValidationRow.ParseError(csv.Context.Parser?.RawRecord ?? string.Empty, ex.Message)); } } return rows; diff --git a/SharepointToolbox/Views/Tabs/TransferView.xaml.cs b/SharepointToolbox/Views/Tabs/TransferView.xaml.cs index 5859138..ed110d9 100644 --- a/SharepointToolbox/Views/Tabs/TransferView.xaml.cs +++ b/SharepointToolbox/Views/Tabs/TransferView.xaml.cs @@ -91,7 +91,7 @@ public partial class TransferView : UserControl private void ConflictCombo_SelectionChanged(object sender, SelectionChangedEventArgs e) { - if (ConflictCombo.SelectedIndex >= 0) + if (_viewModel != null && ConflictCombo.SelectedIndex >= 0) { _viewModel.ConflictPolicy = (ConflictPolicy)ConflictCombo.SelectedIndex; }