public async Task <IActionResult> AddProfile(string subject, [FromBody] LinkProfileRequest linkProfileRequest) { if (string.IsNullOrWhiteSpace(subject)) { return(BuildMissingParameter(nameof(subject))); } if (linkProfileRequest == null) { return(BuildMissingParameter(nameof(linkProfileRequest))); } await _profileActions.Link(subject, linkProfileRequest.UserId, linkProfileRequest.Issuer, linkProfileRequest.Force); return(new NoContentResult()); }
public Task <BaseResponse> Execute(string requestUrl, LinkProfileRequest linkProfileRequest, string authorizationHeaderValue = null) { if (string.IsNullOrWhiteSpace(requestUrl)) { throw new ArgumentException(nameof(requestUrl)); } if (linkProfileRequest == null) { throw new ArgumentNullException(nameof(linkProfileRequest)); } var url = requestUrl + "/.me"; return(Link(url, linkProfileRequest, authorizationHeaderValue)); }
private async Task <BaseResponse> Link(string requestUrl, LinkProfileRequest linkProfileRequest, string authorizationHeaderValue = null) { var httpClient = _httpClientFactory.GetHttpClient(); var json = JsonConvert.SerializeObject(linkProfileRequest, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }); var request = new HttpRequestMessage { Method = HttpMethod.Post, Content = new StringContent(json), RequestUri = new Uri(requestUrl) }; request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); if (!string.IsNullOrWhiteSpace(authorizationHeaderValue)) { request.Headers.Add("Authorization", "Bearer " + authorizationHeaderValue); } var result = await httpClient.SendAsync(request).ConfigureAwait(false); var content = await result.Content.ReadAsStringAsync().ConfigureAwait(false); try { result.EnsureSuccessStatusCode(); } catch (Exception) { return(new BaseResponse { ContainsError = true, Error = JsonConvert.DeserializeObject <ErrorResponse>(content), HttpStatus = result.StatusCode }); } return(new BaseResponse()); }
public Task <BaseResponse> LinkProfile(string requestUrl, string currentSubject, LinkProfileRequest linkProfileRequest, string authorizationHeaderValue = null) { return(_linkProfileOperation.Execute(requestUrl, currentSubject, linkProfileRequest, authorizationHeaderValue)); }
public Task <IActionResult> AddProfile([FromBody] LinkProfileRequest linkProfileRequest) { return(AddProfile(User.GetSubject(), linkProfileRequest)); }