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);
        }
Пример #5
0
        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));
 }
 public Session(Uri serverUri, ICredentials credentials)
 {
     _serverUri = serverUri;
     Headers = new NameValueCollection();
     GetRoot(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);
 }