Severity: Warning
Files:
src/Servy.Manager/ViewModels/ConsoleViewModel.cs lines 572–614
src/Servy.Manager/ViewModels/PerformanceViewModel.cs lines 448–493
src/Servy.Manager/ViewModels/DependenciesViewModel.cs lines 341–380
Description:
All three SearchServicesAsync implementations follow the same 50-line pattern: cancel CTS, set cursor/busy/button text, optionally yield to dispatcher, call ServiceCommands.SearchServicesAsync(), fill Services collection, restore cursor/busy/button in finally. The only difference is the model type populated (ConsoleService vs PerformanceService vs DependencyService).
Suggested fix:
Extract to a shared base class with a factory method for creating the service item from a search result.
Severity: Warning
Files:
src/Servy.Manager/ViewModels/ConsoleViewModel.cslines 572–614src/Servy.Manager/ViewModels/PerformanceViewModel.cslines 448–493src/Servy.Manager/ViewModels/DependenciesViewModel.cslines 341–380Description:
All three
SearchServicesAsyncimplementations follow the same 50-line pattern: cancel CTS, set cursor/busy/button text, optionally yield to dispatcher, callServiceCommands.SearchServicesAsync(), fillServicescollection, restore cursor/busy/button in finally. The only difference is the model type populated (ConsoleServicevsPerformanceServicevsDependencyService).Suggested fix:
Extract to a shared base class with a factory method for creating the service item from a search result.