|
7 | 7 | using System.Reactive.Linq; |
8 | 8 | using System.Reactive.Threading.Tasks; |
9 | 9 | using System.Threading.Tasks; |
10 | | -using System.Globalization; |
11 | 10 | using GitHub.App; |
| 11 | +using GitHub.Commands; |
12 | 12 | using GitHub.Extensions; |
13 | 13 | using GitHub.Factories; |
14 | 14 | using GitHub.Helpers; |
@@ -36,7 +36,7 @@ public sealed class PullRequestDetailViewModel : PanePageViewModelBase, IPullReq |
36 | 36 | readonly IPullRequestSessionManager sessionManager; |
37 | 37 | readonly IUsageTracker usageTracker; |
38 | 38 | readonly ITeamExplorerContext teamExplorerContext; |
39 | | - readonly IStatusBarNotificationService statusBarNotificationService; |
| 39 | + readonly ISyncSubmodulesCommand syncSubmodulesCommand; |
40 | 40 | IModelService modelService; |
41 | 41 | IPullRequestModel model; |
42 | 42 | string sourceBranchDisplayName; |
@@ -71,22 +71,22 @@ public PullRequestDetailViewModel( |
71 | 71 | IModelServiceFactory modelServiceFactory, |
72 | 72 | IUsageTracker usageTracker, |
73 | 73 | ITeamExplorerContext teamExplorerContext, |
74 | | - IStatusBarNotificationService statusBarNotificationService, |
75 | | - IPullRequestFilesViewModel files) |
| 74 | + IPullRequestFilesViewModel files, |
| 75 | + ISyncSubmodulesCommand syncSubmodulesCommand) |
76 | 76 | { |
77 | 77 | Guard.ArgumentNotNull(pullRequestsService, nameof(pullRequestsService)); |
78 | 78 | Guard.ArgumentNotNull(sessionManager, nameof(sessionManager)); |
79 | 79 | Guard.ArgumentNotNull(modelServiceFactory, nameof(modelServiceFactory)); |
80 | 80 | Guard.ArgumentNotNull(usageTracker, nameof(usageTracker)); |
81 | 81 | Guard.ArgumentNotNull(teamExplorerContext, nameof(teamExplorerContext)); |
82 | | - Guard.ArgumentNotNull(statusBarNotificationService, nameof(statusBarNotificationService)); |
| 82 | + Guard.ArgumentNotNull(syncSubmodulesCommand, nameof(syncSubmodulesCommand)); |
83 | 83 |
|
84 | 84 | this.pullRequestsService = pullRequestsService; |
85 | 85 | this.sessionManager = sessionManager; |
86 | 86 | this.modelServiceFactory = modelServiceFactory; |
87 | 87 | this.usageTracker = usageTracker; |
88 | 88 | this.teamExplorerContext = teamExplorerContext; |
89 | | - this.statusBarNotificationService = statusBarNotificationService; |
| 89 | + this.syncSubmodulesCommand = syncSubmodulesCommand; |
90 | 90 | Files = files; |
91 | 91 |
|
92 | 92 | Checkout = ReactiveCommand.CreateAsyncObservable( |
@@ -606,21 +606,17 @@ async Task DoSyncSubmodules(object unused) |
606 | 606 | IsBusy = true; |
607 | 607 | usageTracker.IncrementCounter(x => x.NumberOfSyncSubmodules).Forget(); |
608 | 608 |
|
609 | | - var writer = new StringWriter(CultureInfo.CurrentCulture); |
610 | | - var complete = await pullRequestsService.SyncSubmodules(LocalRepository, line => |
611 | | - { |
612 | | - writer.WriteLine(line); |
613 | | - statusBarNotificationService.ShowMessage(line); |
614 | | - }); |
| 609 | + var result = await syncSubmodulesCommand.SyncSubmodules(); |
| 610 | + var complete = result.Item1; |
| 611 | + var summary = result.Item2; |
615 | 612 | if (!complete) |
616 | 613 | { |
617 | | - throw new ApplicationException(writer.ToString()); |
| 614 | + throw new ApplicationException(summary); |
618 | 615 | } |
619 | 616 | } |
620 | 617 | finally |
621 | 618 | { |
622 | 619 | IsBusy = false; |
623 | | - statusBarNotificationService.ShowMessage(string.Empty); |
624 | 620 | } |
625 | 621 | } |
626 | 622 |
|
|
0 commit comments