private async Task <ConnectUser> GetConnectUser(ConnectUserQuery query, CancellationToken cancellationToken) { var url = GetConnectUrl("user"); if (!string.IsNullOrWhiteSpace(query.Id)) { url = url + "?id=" + WebUtility.UrlEncode(query.Id); } else if (!string.IsNullOrWhiteSpace(query.NameOrEmail)) { url = url + "?nameOrEmail=" + WebUtility.UrlEncode(query.NameOrEmail); } else if (!string.IsNullOrWhiteSpace(query.Name)) { url = url + "?name=" + WebUtility.UrlEncode(query.Name); } else if (!string.IsNullOrWhiteSpace(query.Email)) { url = url + "?name=" + WebUtility.UrlEncode(query.Email); } else { throw new ArgumentException("Empty ConnectUserQuery supplied"); } var options = new HttpRequestOptions { CancellationToken = cancellationToken, Url = url, BufferContent = false }; SetServerAccessToken(options); SetApplicationHeader(options); using (var stream = await _httpClient.Get(options).ConfigureAwait(false)) { var response = _json.DeserializeFromStream <GetConnectUserResponse>(stream); return(new ConnectUser { Email = response.Email, Id = response.Id, Name = response.Name, IsActive = response.IsActive, ImageUrl = response.ImageUrl }); } }
public async Task <ConnectUser> GetConnectUser(ConnectUserQuery query, string accessToken, CancellationToken cancellationToken = default(CancellationToken)) { if (string.IsNullOrWhiteSpace(accessToken)) { throw new ArgumentNullException("accessToken"); } var dict = new QueryStringDictionary(); if (!string.IsNullOrWhiteSpace(query.Id)) { dict.Add("id", query.Id); } else if (!string.IsNullOrWhiteSpace(query.NameOrEmail)) { dict.Add("nameOrEmail", query.NameOrEmail); } else if (!string.IsNullOrWhiteSpace(query.Name)) { dict.Add("name", query.Name); } else if (!string.IsNullOrWhiteSpace(query.Email)) { dict.Add("email", query.Email); } else { throw new ArgumentException("Empty ConnectUserQuery supplied"); } var url = GetConnectUrl("user") + "?" + dict.GetQueryString(); var request = new HttpRequest { Method = "GET", Url = url, CancellationToken = cancellationToken }; AddUserAccessToken(request, accessToken); AddAppInfo(request, _appName, _appVersion); using (var stream = await _httpClient.SendAsync(request).ConfigureAwait(false)) { return(JsonSerializer.DeserializeFromStream <ConnectUser>(stream)); } }
private async Task<ConnectUser> GetConnectUser(ConnectUserQuery query, CancellationToken cancellationToken) { var url = GetConnectUrl("user"); if (!string.IsNullOrWhiteSpace(query.Id)) { url = url + "?id=" + WebUtility.UrlEncode(query.Id); } else if (!string.IsNullOrWhiteSpace(query.NameOrEmail)) { url = url + "?nameOrEmail=" + WebUtility.UrlEncode(query.NameOrEmail); } else if (!string.IsNullOrWhiteSpace(query.Name)) { url = url + "?name=" + WebUtility.UrlEncode(query.Name); } else if (!string.IsNullOrWhiteSpace(query.Email)) { url = url + "?name=" + WebUtility.UrlEncode(query.Email); } else { throw new ArgumentException("Empty ConnectUserQuery supplied"); } var options = new HttpRequestOptions { CancellationToken = cancellationToken, Url = url }; SetServerAccessToken(options); SetApplicationHeader(options); using (var stream = await _httpClient.Get(options).ConfigureAwait(false)) { var response = _json.DeserializeFromStream<GetConnectUserResponse>(stream); return new ConnectUser { Email = response.Email, Id = response.Id, Name = response.Name, IsActive = response.IsActive, ImageUrl = response.ImageUrl }; } }