private void ShowTermsOfUseForPublishing()
{
var additionalTerms = string.Empty;
if (resourceProvider != null)
additionalTerms = resourceProvider.AdditionalPackagePublisherTermsOfUse;
if (!ShowTermsOfUseDialog(true, additionalTerms))
return; // Terms of use not accepted.
// If user accepts the terms of use, then update the record on
// the server, before proceeding to show the publishing dialog.
// This method is invoked on the UI thread, so when the server call
// returns, invoke the publish dialog on the UI thread's context.
//
Task<bool>.Factory.StartNew(() => packageManagerClient.SetTermsOfUseAcceptanceStatus()).
ContinueWith(t =>
{
if (t.Result)
callbackAction.Invoke();
},
TaskScheduler.FromCurrentSynchronizationContext());
}
}