Added fail-fast for Confluence & Jira, this prevents slow-down in the Destination-Picker when moving over the Jira or Confluence destination and no login was made.

git-svn-id: http://svn.code.sf.net/p/greenshot/code/trunk@1794 7dccd23d-a4a3-4e1f-8c07-b4c1b4018ab4
This commit is contained in:
RKrom 2012-04-18 10:25:12 +00:00
parent 63cfb8b3ee
commit d73d80fe1a
4 changed files with 19 additions and 17 deletions

View file

@ -92,7 +92,7 @@ namespace GreenshotConfluencePlugin {
}
public override IEnumerable<IDestination> DynamicDestinations() {
if (!ConfluencePlugin.ConfluenceConnectorNoLogin.isLoggedIn) {
if (ConfluencePlugin.ConfluenceConnectorNoLogin == null || !ConfluencePlugin.ConfluenceConnectorNoLogin.isLoggedIn) {
yield break;
}
List<Confluence.Page> currentPages = ConfluenceUtils.GetCurrentPages();

View file

@ -42,8 +42,7 @@ namespace GreenshotConfluencePlugin {
private static ConfluenceConfiguration config = null;
private static IGreenshotHost host;
public static ConfluenceConnector ConfluenceConnectorNoLogin {
get {
private static void CreateConfluenceConntector() {
if (confluenceConnector == null) {
if (config.Url.Contains("soap-axis")) {
confluenceConnector = new ConfluenceConnector(config.Url, config.Timeout);
@ -51,6 +50,10 @@ namespace GreenshotConfluencePlugin {
confluenceConnector = new ConfluenceConnector(config.Url + ConfluenceConfiguration.DEFAULT_POSTFIX, config.Timeout);
}
}
}
public static ConfluenceConnector ConfluenceConnectorNoLogin {
get {
return confluenceConnector;
}
}
@ -58,7 +61,7 @@ namespace GreenshotConfluencePlugin {
public static ConfluenceConnector ConfluenceConnector {
get {
if (confluenceConnector == null) {
confluenceConnector = ConfluenceConnectorNoLogin;
CreateConfluenceConntector();
}
try {
if (!confluenceConnector.isLoggedIn) {

View file

@ -86,8 +86,7 @@ namespace GreenshotJiraPlugin {
}
public override IEnumerable<IDestination> DynamicDestinations() {
// Fail fast would be like this: if (JiraPlugin.Instance.CurrentJiraConnector == null || !JiraPlugin.Instance.JiraConnector.isLoggedIn) {
if (!JiraPlugin.Instance.JiraConnector.isLoggedIn) {
if (JiraPlugin.Instance.CurrentJiraConnector == null || !JiraPlugin.Instance.CurrentJiraConnector.isLoggedIn) {
yield break;
}
List<JiraIssue> issues = JiraUtils.GetCurrentJiras();

View file

@ -75,11 +75,11 @@ namespace GreenshotJiraPlugin {
}
//Needed for a fail-fast
//public JiraConnector CurrentJiraConnector {
// get {
// return jiraConnector;
// }
//}
public JiraConnector CurrentJiraConnector {
get {
return jiraConnector;
}
}
public JiraConnector JiraConnector {
get {