/// <summary> /// /// </summary> /// <typeparam name="T"></typeparam> /// <param name="relativeURL"></param> /// <param name="pComplexity"></param> /// <returns></returns> private T CallWS <T>(string relativeURL, RequestComplexity pComplexity) where T : class { var requestUrl = _CurrentConnection.EndsWith("/") ? _CurrentConnection.Substring(0, _CurrentConnection.Length - 1) : _CurrentConnection; requestUrl += "/"; requestUrl += relativeURL.StartsWith("/") ? relativeURL.Substring(1) : relativeURL; try { if (_Client.GetCookieContainer().Count > 0) { _Client.RemoveAuthenticationHeaders(CurrentApiKey); } var jsonString = _Client.DownloadString(requestUrl, pComplexity); var serializer = new DataContractJsonSerializer(typeof(T)); MemoryStream ms = new MemoryStream(Encoding.Unicode.GetBytes(jsonString)); try { T res = serializer.ReadObject(ms) as T; return(res); } finally { ms.Close(); } } catch (WebException e) { LogHelper.Instance.LogError(e.Message); return(null); } }
/// <summary> /// Constructor /// </summary> /// <param name="connection"></param> /// <param name="client"></param> public CastRepository(WSConnection connection, ICastProxy client) { _Client = new CastProxy(connection.Login, connection.Password, connection.ApiKey, client?.GetCookieContainer()); _CurrentConnection = connection.Url; _CurrentApiKey = connection.ApiKey; }