Skip to content

Commit 5475fcf

Browse files
committed
feat: improve ui
1 parent b67f92c commit 5475fcf

2 files changed

Lines changed: 14 additions & 6 deletions

File tree

src/ByteSync.Client/Business/Comparisons/ValidationFailureSummary.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,13 @@ namespace ByteSync.Business.Comparisons;
55
public class ValidationFailureSummary
66
{
77
public AtomicActionValidationFailureReason Reason { get; set; }
8+
89
public int Count { get; set; }
10+
911
public string LocalizedMessage { get; set; } = string.Empty;
12+
1013
public List<ComparisonItem> AffectedItems { get; set; } = new();
1114

1215
public string AffectedItemsTooltip => string.Join("\n", AffectedItems.Select(item =>
13-
item.PathIdentity.FileName ?? item.PathIdentity.LinkingKeyValue));
16+
item.PathIdentity.LinkingKeyValue));
1417
}

src/ByteSync.Client/ViewModels/Sessions/Comparisons/Actions/TargetedActionGlobalViewModel.cs

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -128,8 +128,7 @@ public TargetedActionGlobalViewModel(List<ComparisonItem> comparisonItems,
128128
[Reactive]
129129
public bool IsInconsistentWithNoValidItems { get; set; }
130130

131-
[Reactive]
132-
public List<ValidationFailureSummary> FailureSummaries { get; set; } = new();
131+
public ObservableCollection<ValidationFailureSummary> FailureSummaries { get; set; } = new();
133132

134133
[Reactive]
135134
public string ActionIssuesHeaderMessage { get; set; } = string.Empty;
@@ -287,6 +286,7 @@ private void ShowMissingFieldsWarning()
287286
AreMissingFields = true;
288287
IsInconsistentWithValidItems = null;
289288
IsInconsistentWithNoValidItems = false;
289+
FailureSummaries.Clear(); // Clear previous validation failure summaries
290290

291291
DoShowWarning();
292292
}
@@ -308,7 +308,8 @@ private void ShowConsistencyWarning(AtomicActionConsistencyCheckCanAddResult che
308308
}
309309

310310
// Generate failure summaries with detailed information
311-
FailureSummaries = checkCanAddResult.FailedValidations
311+
FailureSummaries.Clear();
312+
var summaries = checkCanAddResult.FailedValidations
312313
.GroupBy(f => f.FailureReason!.Value)
313314
.Select(g => new ValidationFailureSummary
314315
{
@@ -317,8 +318,12 @@ private void ShowConsistencyWarning(AtomicActionConsistencyCheckCanAddResult che
317318
LocalizedMessage = _failureReasonLocalizer.GetLocalizedMessage(g.Key),
318319
AffectedItems = g.Select(f => f.ComparisonItem).ToList()
319320
})
320-
.OrderByDescending(s => s.Count) // Most frequent failures first
321-
.ToList();
321+
.OrderByDescending(s => s.Count); // Most frequent failures first
322+
323+
foreach (var summary in summaries)
324+
{
325+
FailureSummaries.Add(summary);
326+
}
322327

323328
AreMissingFields = false;
324329

0 commit comments

Comments
 (0)