[feature] Split synchronization view into subviews#190
Merged
paul-fresquet merged 8 commits intorefactor/refactor-synchronization-main-viewfrom Aug 23, 2025
Conversation
|
Contributor
There was a problem hiding this comment.
Pull Request Overview
This PR modularizes the synchronization view by splitting the monolithic SynchronizationMainViewModel into three specialized subcomponents: before-start, main status, and statistics. This refactoring improves separation of concerns and testability while maintaining the same functionality.
- Extracted synchronization logic into three focused view models with corresponding views
- Introduced comprehensive unit tests for the new view models
- Updated test infrastructure to force English culture for consistent test execution
Reviewed Changes
Copilot reviewed 17 out of 17 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
SynchronizationMainViewModel.cs |
Refactored to compose three specialized subview models instead of handling all logic directly |
SynchronizationBeforeStartViewModel.cs |
New view model handling pre-synchronization start logic and UI state |
SynchronizationMainStatusViewModel.cs |
New view model managing synchronization status display and abort functionality |
SynchronizationStatisticsViewModel.cs |
New view model tracking synchronization progress statistics and timing |
| View files | New AXAML views and code-behind for the three subcomponents |
| Test files | Comprehensive unit tests covering the new view models with proper mocking and assertions |
AbstractTester.cs |
Added culture forcing to ensure consistent test execution across environments |
AGENTS.md |
Updated testing guidelines and coverage requirements |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
src/ByteSync.Client/ViewModels/Sessions/Synchronizations/SynchronizationMainStatusViewModel.cs
Show resolved
Hide resolved
d5355d6
into
refactor/refactor-synchronization-main-view
21 checks passed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Summary
Testing
dotnet build --verbosity quiet /property:WarningLevel=0dotnet test(fails: The configuration file 'server-common-tests.local.settings.json' was not found and is not optional)https://chatgpt.com/codex/tasks/task_e_68a97fc9f4d88333bf4930280175787c