@@ -26,21 +26,14 @@ namespace GitHub.ViewModels
2626 [ NullGuard ( ValidationFlags . None ) ]
2727 public class PullRequestDetailViewModel : BaseViewModel , IPullRequestDetailViewModel
2828 {
29- readonly IRepositoryHost repositoryHost ;
3029 readonly ILocalRepositoryModel repository ;
3130 readonly IModelService modelService ;
3231 readonly IPullRequestService pullRequestsService ;
3332 IPullRequestModel model ;
34- PullRequestStateEnum state ;
3533 string sourceBranchDisplayName ;
3634 string targetBranchDisplayName ;
37- int commitCount ;
38- IAccount author ;
39- DateTimeOffset createdAt ;
4035 string body ;
41- int number ;
42- int changeCount ;
43- ChangedFilesView changedFilesView ;
36+ ChangedFilesViewType changedFilesViewType ;
4437 OpenChangedFileAction openChangedFileAction ;
4538 CheckoutMode checkoutMode ;
4639 string checkoutError ;
@@ -59,8 +52,7 @@ public class PullRequestDetailViewModel : BaseViewModel, IPullRequestDetailViewM
5952 IConnectionRepositoryHostMap connectionRepositoryHostMap ,
6053 ITeamExplorerServiceHolder teservice ,
6154 IPullRequestService pullRequestsService )
62- : this ( connectionRepositoryHostMap . CurrentRepositoryHost ,
63- teservice . ActiveRepo ,
55+ : this ( teservice . ActiveRepo ,
6456 connectionRepositoryHostMap . CurrentRepositoryHost . ModelService ,
6557 pullRequestsService )
6658 {
@@ -74,12 +66,10 @@ public class PullRequestDetailViewModel : BaseViewModel, IPullRequestDetailViewM
7466 /// <param name="pullRequestsService">The pull requests service.</param>
7567 /// <param name="avatarProvider">The avatar provider.</param>
7668 public PullRequestDetailViewModel (
77- IRepositoryHost repositoryHost ,
7869 ILocalRepositoryModel repository ,
7970 IModelService modelService ,
8071 IPullRequestService pullRequestsService )
8172 {
82- this . repositoryHost = repositoryHost ;
8373 this . repository = repository ;
8474 this . modelService = modelService ;
8575 this . pullRequestsService = pullRequestsService ;
@@ -95,8 +85,8 @@ public PullRequestDetailViewModel(
9585 ToggleChangedFilesView = ReactiveCommand . Create ( ) ;
9686 ToggleChangedFilesView . Subscribe ( _ =>
9787 {
98- ChangedFilesView = ChangedFilesView == ChangedFilesView . TreeView ?
99- ChangedFilesView . ListView : ChangedFilesView . TreeView ;
88+ ChangedFilesViewType = ChangedFilesViewType == ChangedFilesViewType . TreeView ?
89+ ChangedFilesViewType . ListView : ChangedFilesViewType . TreeView ;
10090 } ) ;
10191
10292 ToggleOpenChangedFileAction = ReactiveCommand . Create ( ) ;
@@ -111,12 +101,12 @@ public PullRequestDetailViewModel(
111101 }
112102
113103 /// <summary>
114- /// Gets the state of the pull request, e.g. Open, Closed, Merged .
104+ /// Gets the underlying pull request model .
115105 /// </summary>
116- public PullRequestStateEnum State
106+ public IPullRequestModel Model
117107 {
118- get { return state ; }
119- private set { this . RaiseAndSetIfChanged ( ref state , value ) ; }
108+ get { return model ; }
109+ private set { this . RaiseAndSetIfChanged ( ref model , value ) ; }
120110 }
121111
122112 /// <summary>
@@ -137,42 +127,6 @@ public string TargetBranchDisplayName
137127 private set { this . RaiseAndSetIfChanged ( ref targetBranchDisplayName , value ) ; }
138128 }
139129
140- /// <summary>
141- /// Gets the number of commits in the pull request.
142- /// </summary>
143- public int CommitCount
144- {
145- get { return commitCount ; }
146- private set { this . RaiseAndSetIfChanged ( ref commitCount , value ) ; }
147- }
148-
149- /// <summary>
150- /// Gets the pull request number.
151- /// </summary>
152- public int Number
153- {
154- get { return number ; }
155- private set { this . RaiseAndSetIfChanged ( ref number , value ) ; }
156- }
157-
158- /// <summary>
159- /// Gets the account that submitted the pull request.
160- /// </summary>
161- public IAccount Author
162- {
163- get { return author ; }
164- private set { this . RaiseAndSetIfChanged ( ref author , value ) ; }
165- }
166-
167- /// <summary>
168- /// Gets the date and time at which the pull request was created.
169- /// </summary>
170- public DateTimeOffset CreatedAt
171- {
172- get { return createdAt ; }
173- private set { this . RaiseAndSetIfChanged ( ref createdAt , value ) ; }
174- }
175-
176130 /// <summary>
177131 /// Gets the pull request body.
178132 /// </summary>
@@ -182,22 +136,13 @@ public string Body
182136 private set { this . RaiseAndSetIfChanged ( ref body , value ) ; }
183137 }
184138
185- /// <summary>
186- /// Gets the number of files that have been changed in the pull request.
187- /// </summary>
188- public int ChangedFilesCount
189- {
190- get { return changeCount ; }
191- private set { this . RaiseAndSetIfChanged ( ref changeCount , value ) ; }
192- }
193-
194139 /// <summary>
195140 /// Gets or sets a value describing how changed files are displayed in a view.
196141 /// </summary>
197- public ChangedFilesView ChangedFilesView
142+ public ChangedFilesViewType ChangedFilesViewType
198143 {
199- get { return changedFilesView ; }
200- set { this . RaiseAndSetIfChanged ( ref changedFilesView , value ) ; }
144+ get { return changedFilesViewType ; }
145+ set { this . RaiseAndSetIfChanged ( ref changedFilesViewType , value ) ; }
201146 }
202147
203148 /// <summary>
@@ -267,7 +212,7 @@ public string CheckoutDisabledMessage
267212 public ReactiveCommand < object > OpenOnGitHub { get ; }
268213
269214 /// <summary>
270- /// Gets a command that toggles the <see cref="ChangedFilesView "/> property.
215+ /// Gets a command that toggles the <see cref="ChangedFilesViewType "/> property.
271216 /// </summary>
272217 public ReactiveCommand < object > ToggleChangedFilesView { get ; }
273218
@@ -308,17 +253,10 @@ public override void Initialize([AllowNull] ViewWithData data)
308253 /// <param name="files">The pull request's changed files.</param>
309254 public async Task Load ( IPullRequestModel pullRequest )
310255 {
311- model = pullRequest ;
312- State = pullRequest . State ;
256+ Model = pullRequest ;
313257 SourceBranchDisplayName = GetBranchDisplayName ( pullRequest . Head . Label ) ;
314258 TargetBranchDisplayName = GetBranchDisplayName ( pullRequest . Base . Label ) ;
315- CommitCount = pullRequest . CommitCount ;
316- Title = pullRequest . Title ;
317- Number = pullRequest . Number ;
318- Author = pullRequest . Author ;
319- CreatedAt = pullRequest . CreatedAt ;
320259 Body = ! string . IsNullOrWhiteSpace ( pullRequest . Body ) ? pullRequest . Body : "*No description provided.*" ;
321- ChangedFilesCount = pullRequest . ChangedFiles . Count ;
322260
323261 ChangedFilesTree . Clear ( ) ;
324262 ChangedFilesList . Clear ( ) ;
@@ -338,7 +276,7 @@ public async Task Load(IPullRequestModel pullRequest)
338276
339277 if ( localBranches . Contains ( repository . CurrentBranch ) )
340278 {
341- var divergence = await pullRequestsService . CalculateHistoryDivergence ( repository , Number ) ;
279+ var divergence = await pullRequestsService . CalculateHistoryDivergence ( repository , Model . Number ) ;
342280
343281 if ( divergence . BehindBy == null )
344282 {
@@ -454,17 +392,17 @@ IObservable<Unit> DoCheckout(object unused)
454392 break ;
455393 case CheckoutMode . Fetch :
456394 operation = pullRequestsService
457- . GetDefaultLocalBranchName ( repository , Number , Title )
458- . SelectMany ( x => pullRequestsService . FetchAndCheckout ( repository , Number , x ) ) ;
395+ . GetDefaultLocalBranchName ( repository , Model . Number , Title )
396+ . SelectMany ( x => pullRequestsService . FetchAndCheckout ( repository , Model . Number , x ) ) ;
459397 break ;
460398 case CheckoutMode . Switch :
461- operation = pullRequestsService . SwitchToBranch ( repository , model ) ;
399+ operation = pullRequestsService . SwitchToBranch ( repository , Model ) ;
462400 break ;
463401 case CheckoutMode . InvalidState :
464402 operation = pullRequestsService
465403 . UnmarkLocalBranch ( repository )
466- . SelectMany ( _ => pullRequestsService . GetDefaultLocalBranchName ( repository , Number , Title ) )
467- . SelectMany ( x => pullRequestsService . FetchAndCheckout ( repository , Number , x ) ) ;
404+ . SelectMany ( _ => pullRequestsService . GetDefaultLocalBranchName ( repository , Model . Number , Title ) )
405+ . SelectMany ( x => pullRequestsService . FetchAndCheckout ( repository , Model . Number , x ) ) ;
468406 break ;
469407 default :
470408 Debug . Fail ( "Invalid CheckoutMode in PullRequestDetailViewModel.DoCheckout." ) ;
0 commit comments