public object Get(ConnectionRequest request) { var result = ConnectionResult.UnknownTarget; if (request.Type == null) return result; switch (request.Type.ToLowerInvariant()) { case "tfs": string.Format("Connecting to TFS using {0}", request).Debug(); var tfs = new TfsConnection(); result = tfs.Connect(request.Url, request.User, request.Password); break; case "jira": string.Format("Connecting to JIRA using {0}", request).Debug(); var jira = new JiraConnection(); result = jira.Connect(request.Url, request.User, request.Password); break; case "githubissues": string.Format("Connecting to GitHub (Issues) using {0}", request).Debug(); var githubissues = new GitHubIssuesConnection(); result = githubissues.Connect(request.Host, request.User, request.Password); break; case "githubpulls": string.Format("Connecting to GitHub (Pulls) using {0}", request).Debug(); var githubpulls = new GitHubPullsConnection(); result = githubpulls.Connect(request.Host, request.User, request.Password); break; } if (result == ConnectionResult.Success) { "Connection successful.".Debug(); SaveLogin(request); return OK(); } if (result == ConnectionResult.FailedToConnect) return NotAuthorized("Credentials Rejected"); if (result == ConnectionResult.InvalidUrl) return BadRequest("Invalid Url"); return BadRequest("Unknown Target"); }
private static IConnection Connect(Request request, out ConnectionResult result) { result = ConnectionResult.UnknownTarget; if (request.Type == null) return null; IConnection target; switch (request.Type.ToLowerInvariant()) { case "tfs": target = new TfsConnection(); result = target.Connect(request.Url, request.User, request.Password); break; case "jira": target = new JiraConnection(); result = target.Connect(request.Url, request.User, request.Password); break; case "githubissues": target = new GitHubIssuesConnection(); result = target.Connect(request.Host, request.User, request.Password); break; case "githubpulls": target = new GitHubPullsConnection(); result = target.Connect(request.Host, request.User, request.Password); break; default: target = null; break; } return target; }