private void GetRoot(Uri serverUri, ICredentials credentials) { HttpWebResponse response; try { response = RestHelper.GetResponseEx(serverUri, null, "GET", "application/json", Headers, 60000); } catch (WebException ex) { response = ex.Response as HttpWebResponse; } if(response != null && response.StatusCode == HttpStatusCode.Unauthorized) { var items = RestHelper.GetResponse(response).FromJson<List<RestItem>>(); var loginLink = items.SelectMany(restItem => restItem.Links).First( restLink => restLink.Relation == "http://api.sportingsolutions.com/rels/login"); var loginUrl = loginLink.Href; _restItems = Login(new Uri(loginUrl), credentials); } else { _restItems = RestHelper.GetResponse(response).FromJson<List<RestItem>>(); } }
private List <RestItem> Login(Uri serverUri, ICredentials credentials) { var headers = new NameValueCollection { { "X-Auth-User", credentials.UserName }, { "X-Auth-Key", credentials.Password } }; var response = RestHelper.GetResponseEx(serverUri, null, "POST", "application/json", headers); Headers.Add("X-Auth-Token", response.Headers.Get("X-Auth-Token")); return(RestHelper.GetResponse(response).FromJson <List <RestItem> >()); }
private ISession GetSession(Uri serverUri, ICredentials credentials) { ISession session = null; _sessions.TryGetValue(serverUri + credentials.UserName, out session); if (session == null) { var connectClient = new ConnectClient(serverUri, new Clients.Credentials(credentials.UserName, credentials.Password)); session = new Session(connectClient); _sessions.TryAdd(serverUri + credentials.UserName, session); } return session; }
private ISession GetSession(Uri serverUri, ICredentials credentials) { ISession session = null; _sessions.TryGetValue(serverUri + credentials.UserName, out session); if (session == null) { var connectClient = new ConnectClient(serverUri, new Clients.Credentials(credentials.UserName, credentials.Password)); session = new Session(connectClient); _sessions.TryAdd(serverUri + credentials.UserName, session); } return(session); }
public ISession GetSession(Uri serverUri, ICredentials credentials) { if (_sessions.TryGetValue(serverUri + credentials.UserName, out ISession session)) { return(session); } else { var connectClient = new ConnectClient(LoggerFactory.CreateLogger <ConnectClient>(), serverUri, new Clients.Credentials(credentials.UserName, credentials.Password)); var newSession = new Session(connectClient, LoggerFactory.CreateLogger <Session>(), Cache); if (_sessions.TryAdd(serverUri + credentials.UserName, newSession)) { return(newSession); } } return(default);
private void GetRoot(Uri serverUri, ICredentials credentials, bool authenticate = true) { _logger.DebugFormat("Connecting to {0}", serverUri); HttpWebResponse response; try { response = RestHelper.GetResponseEx(serverUri, null, "GET", "application/json", Headers, 60000); } catch (WebException ex) { if (ex.Status == WebExceptionStatus.NameResolutionFailure) { throw new Exception("The url cannot be resolved"); } response = ex.Response as HttpWebResponse; } if (authenticate) { if (response != null && response.StatusCode == HttpStatusCode.Unauthorized) { _logger.Debug("Not authenticated logging on"); var items = RestHelper.GetResponse(response).FromJson <List <RestItem> >(); var loginLink = items.SelectMany(restItem => restItem.Links).First( restLink => restLink.Relation == "http://api.sportingsolutions.com/rels/login"); var loginUrl = loginLink.Href; _restItems = Login(new Uri(loginUrl), credentials); _logger.Info("Logged in successfully"); } } else { if (response != null) { _logger.Info("Refreshing list of available services.."); _restItems = RestHelper.GetResponse(response).FromJson <List <RestItem> >(); } } if (_restItems == null) { throw new Exception("Unable to connect. Please check the url and credentials"); } }
private void GetRoot(Uri serverUri, ICredentials credentials, bool authenticate = true) { _logger.DebugFormat("Connecting to {0}",serverUri); HttpWebResponse response; try { response = RestHelper.GetResponseEx(serverUri, null, "GET", "application/json", Headers, 60000); } catch (WebException ex) { if(ex.Status == WebExceptionStatus.NameResolutionFailure) { throw new Exception("The url cannot be resolved"); } response = ex.Response as HttpWebResponse; } if (authenticate) { if (response != null && response.StatusCode == HttpStatusCode.Unauthorized) { _logger.Debug("Not authenticated logging on"); var items = RestHelper.GetResponse(response).FromJson<List<RestItem>>(); var loginLink = items.SelectMany(restItem => restItem.Links).First( restLink => restLink.Relation == "http://api.sportingsolutions.com/rels/login"); var loginUrl = loginLink.Href; _restItems = Login(new Uri(loginUrl), credentials); _logger.Info("Logged in successfully"); } } else { if (response != null) { _logger.Info("Refreshing list of available services.."); _restItems = RestHelper.GetResponse(response).FromJson<List<RestItem>>(); } } if(_restItems == null) { throw new Exception("Unable to connect. Please check the url and credentials"); } }
public Session(Uri serverUri, ICredentials credentials) { _serverUri = serverUri; Headers = new NameValueCollection(); GetRoot(serverUri, credentials); }
public static ISession CreateSession(Uri serverUri, ICredentials credentials) { return(_sessionFactory.GetSession(serverUri, credentials)); }
private List<RestItem> Login(Uri serverUri, ICredentials credentials) { var headers = new NameValueCollection {{"X-Auth-User", credentials.UserName}, {"X-Auth-Key", credentials.Password}}; var response = RestHelper.GetResponseEx(serverUri, null, "POST", "application/json", headers); Headers.Add("X-Auth-Token",response.Headers.Get("X-Auth-Token")); return RestHelper.GetResponse(response).FromJson<List<RestItem>>(); }
public static ISession CreateSession(Uri serverUri, ICredentials credentials) { return _sessionFactory.GetSession(serverUri, credentials); }