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());; } }
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); }
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)); }
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); } }