diff --git a/GreenshotJiraPlugin/GreenshotJiraPlugin.csproj b/GreenshotJiraPlugin/GreenshotJiraPlugin.csproj
index 7defad044..b5a3d87f5 100644
--- a/GreenshotJiraPlugin/GreenshotJiraPlugin.csproj
+++ b/GreenshotJiraPlugin/GreenshotJiraPlugin.csproj
@@ -34,12 +34,12 @@
-
- ..\packages\Dapplo.HttpExtensions.0.6.8\lib\net45\Dapplo.HttpExtensions.dll
+
+ ..\packages\Dapplo.HttpExtensions.0.6.10\lib\net45\Dapplo.HttpExtensions.dll
True
-
- ..\packages\Dapplo.Jira.0.3.1\lib\net45\Dapplo.Jira.dll
+
+ ..\packages\Dapplo.Jira.0.3.4\lib\net45\Dapplo.Jira.dll
True
diff --git a/GreenshotJiraPlugin/JiraConnector.cs b/GreenshotJiraPlugin/JiraConnector.cs
index 0aec2884d..1351ce2d3 100644
--- a/GreenshotJiraPlugin/JiraConnector.cs
+++ b/GreenshotJiraPlugin/JiraConnector.cs
@@ -97,7 +97,7 @@ namespace GreenshotJiraPlugin {
/// Internal login which catches the exceptions
///
/// true if login was done sucessfully
- private async Task DoLoginAsync(string user, string password)
+ private async Task DoLoginAsync(string user, string password, CancellationToken cancellationToken = default(CancellationToken))
{
if (string.IsNullOrEmpty(user) || string.IsNullOrEmpty(password))
{
@@ -110,14 +110,14 @@ namespace GreenshotJiraPlugin {
LoginInfo loginInfo;
try
{
- loginInfo = await _jiraApi.StartSessionAsync(user, password);
+ loginInfo = await _jiraApi.Session.StartAsync(user, password, cancellationToken);
Monitor = new JiraMonitor();
- await Monitor.AddJiraInstanceAsync(_jiraApi);
+ await Monitor.AddJiraInstanceAsync(_jiraApi, cancellationToken);
var favIconUri = _jiraApi.JiraBaseUri.AppendSegments("favicon.ico");
try
{
- FavIcon = await _jiraApi.GetUriContentAsync(favIconUri);
+ FavIcon = await _jiraApi.GetUriContentAsync(favIconUri, cancellationToken);
}
catch (Exception ex)
{
@@ -137,8 +137,8 @@ namespace GreenshotJiraPlugin {
/// If there are credentials, call the real login.
///
/// Task
- public async Task LoginAsync() {
- await LogoutAsync();
+ public async Task LoginAsync(CancellationToken cancellationToken = default(CancellationToken)) {
+ await LogoutAsync(cancellationToken);
try {
// Get the system name, so the user knows where to login to
var credentialsDialog = new CredentialsDialog(JiraConfig.Url)
@@ -146,7 +146,7 @@ namespace GreenshotJiraPlugin {
Name = null
};
while (credentialsDialog.Show(credentialsDialog.Name) == DialogResult.OK) {
- if (await DoLoginAsync(credentialsDialog.Name, credentialsDialog.Password)) {
+ if (await DoLoginAsync(credentialsDialog.Name, credentialsDialog.Password, cancellationToken)) {
if (credentialsDialog.SaveChecked) {
credentialsDialog.Confirm(true);
}
@@ -176,11 +176,11 @@ namespace GreenshotJiraPlugin {
///
/// End the session, if there was one
///
- public async Task LogoutAsync() {
+ public async Task LogoutAsync(CancellationToken cancellationToken = default(CancellationToken)) {
if (_jiraApi != null && _loggedIn)
{
Monitor.Dispose();
- await _jiraApi.EndSessionAsync();
+ await _jiraApi.Session.EndAsync(cancellationToken);
_loggedIn = false;
}
}
@@ -190,14 +190,14 @@ namespace GreenshotJiraPlugin {
/// Do not use ConfigureAwait to call this, as it will move await from the UI thread.
///
///
- private async Task CheckCredentialsAsync() {
+ private async Task CheckCredentialsAsync(CancellationToken cancellationToken = default(CancellationToken)) {
if (_loggedIn) {
if (_loggedInTime.AddMinutes(_timeout-1).CompareTo(DateTime.Now) < 0) {
- await LogoutAsync();
- await LoginAsync();
+ await LogoutAsync(cancellationToken);
+ await LoginAsync(cancellationToken);
}
} else {
- await LoginAsync();
+ await LoginAsync(cancellationToken);
}
}
@@ -205,23 +205,24 @@ namespace GreenshotJiraPlugin {
/// Get the favourite filters
///
/// List with filters
- public async Task> GetFavoriteFiltersAsync()
+ public async Task> GetFavoriteFiltersAsync(CancellationToken cancellationToken = default(CancellationToken))
{
- await CheckCredentialsAsync();
- return await _jiraApi.GetFavoriteFiltersAsync().ConfigureAwait(false);
+ await CheckCredentialsAsync(cancellationToken);
+ return await _jiraApi.Filter.GetFavoritesAsync(cancellationToken).ConfigureAwait(false);
}
///
/// Get the issue for a key
///
/// Jira issue key
+ /// CancellationToken
/// Issue
- public async Task GetIssueAsync(string issueKey)
+ public async Task GetIssueAsync(string issueKey, CancellationToken cancellationToken = default(CancellationToken))
{
- await CheckCredentialsAsync();
+ await CheckCredentialsAsync(cancellationToken);
try
{
- return await _jiraApi.Issue.GetAsync(issueKey).ConfigureAwait(false);
+ return await _jiraApi.Issue.GetAsync(issueKey, cancellationToken).ConfigureAwait(false);
}
catch
{
@@ -238,7 +239,7 @@ namespace GreenshotJiraPlugin {
///
public async Task AttachAsync(string issueKey, IBinaryContainer content, CancellationToken cancellationToken = default(CancellationToken))
{
- await CheckCredentialsAsync();
+ await CheckCredentialsAsync(cancellationToken);
using (var memoryStream = new MemoryStream())
{
content.WriteToStream(memoryStream);
@@ -256,7 +257,7 @@ namespace GreenshotJiraPlugin {
/// CancellationToken
public async Task AddCommentAsync(string issueKey, string body, string visibility = null, CancellationToken cancellationToken = default(CancellationToken))
{
- await CheckCredentialsAsync();
+ await CheckCredentialsAsync(cancellationToken);
await _jiraApi.Issue.AddCommentAsync(issueKey, body, visibility, cancellationToken).ConfigureAwait(false);
}
@@ -268,7 +269,7 @@ namespace GreenshotJiraPlugin {
///
public async Task> SearchAsync(Filter filter, CancellationToken cancellationToken = default(CancellationToken))
{
- await CheckCredentialsAsync();
+ await CheckCredentialsAsync(cancellationToken);
var searchResult = await _jiraApi.Issue.SearchAsync(filter.Jql, 20, new[] { "summary", "reporter", "assignee", "created", "issuetype" }, cancellationToken).ConfigureAwait(false);
return searchResult.Issues;
}
diff --git a/GreenshotJiraPlugin/JiraMonitor.cs b/GreenshotJiraPlugin/JiraMonitor.cs
index 7bea19b11..d38cdee5c 100644
--- a/GreenshotJiraPlugin/JiraMonitor.cs
+++ b/GreenshotJiraPlugin/JiraMonitor.cs
@@ -120,7 +120,7 @@ namespace GreenshotJiraPlugin
public async Task AddJiraInstanceAsync(JiraApi jiraInstance, CancellationToken token = default(CancellationToken))
{
_jiraInstances.Add(jiraInstance);
- var projects = await jiraInstance.GetProjectsAsync(token).ConfigureAwait(false);
+ var projects = await jiraInstance.Project.GetAllAsync(cancellationToken: token).ConfigureAwait(false);
if (projects != null)
{
foreach (var project in projects)
@@ -208,8 +208,7 @@ namespace GreenshotJiraPlugin
if (_recentJiras.Count > _maxEntries)
{
// Add it to the list of recent Jiras
- IList clonedList = new List(_recentJiras.Values);
- _recentJiras = (from jiraDetails in clonedList
+ _recentJiras = (from jiraDetails in _recentJiras.Values.ToList()
orderby jiraDetails.SeenAt descending
select jiraDetails).Take(_maxEntries).ToDictionary(jd => jd.JiraKey, jd => jd);
}
diff --git a/GreenshotJiraPlugin/packages.config b/GreenshotJiraPlugin/packages.config
index 38a68ba7c..d3e269a7c 100644
--- a/GreenshotJiraPlugin/packages.config
+++ b/GreenshotJiraPlugin/packages.config
@@ -1,7 +1,7 @@
-
-
+
+