Exemplo n.º 1
0
        public Session GetSessionInformation(string token)
        {
            if (CheckIfSessionIsValid(token))
            {
                var httpRequest = new JSONRestRequest("/api/v3/sessions/{token}", Method.GET);
                httpRequest.AddUrlSegment("token", token);

                var cachedSessionInformation = _SDKCache["bop.sdk.session-information." + token] as Session;
                if (cachedSessionInformation == null)
                {
                    var response = Execute <Session>(httpRequest, HttpStatusCode.OK);
                    var session  = response.Data;
                    _SDKCache.Set("bop.sdk.session-information." + token, session, DateTimeOffset.Now.AddSeconds(_sessionInformationCacheDuration));
                    return(session);
                }
                else
                {
                    return(cachedSessionInformation);
                }
            }
            else
            {
                throw new SDKServiceException("Session not valid!", new ServiceErrror());;
            }
        }
Exemplo n.º 2
0
        public void SignOut(string token)
        {
            var httpRequest = new JSONRestRequest("/api/v3/sessions/{token}", Method.DELETE);

            httpRequest.AddUrlSegment("token", token);

            var response = Execute(httpRequest, HttpStatusCode.OK);
        }
Exemplo n.º 3
0
        public Session SwitchTenant(SwitchTenantRequest request, string token)
        {
            var httpRequest = new JSONRestRequest("/api/v3/sessions/{token}/switch", Method.POST);

            httpRequest.AddUrlSegment("token", token);
            httpRequest.AddBody(request);
            var response     = Execute(httpRequest, HttpStatusCode.NoContent);
            var location     = response.Headers.FirstOrDefault(x => x.Name == "Location").Value as string;
            var sessionToken = location.Split('/').Last();

            return(GetSessionInformation(sessionToken));
        }
Exemplo n.º 4
0
        public bool CheckIfSessionExists(string token)
        {
            var httpRequest = new JSONRestRequest("/api/v3/sessions/{token}", Method.HEAD);

            httpRequest.AddUrlSegment("token", token);

            if (!_SDKCache.Contains("bop.sdk.session-exists." + token))
            {
                var response = _client.Execute(httpRequest);
                if (response.StatusCode == HttpStatusCode.OK)
                {
                    _SDKCache.Set("bop.sdk.session-exists." + token, true, DateTimeOffset.Now.AddSeconds(_sessionExistanceCacheDuration));
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                return(true);
            }
        }