Exemple #1
0
        public async Task <GetRegisterClientResult> ExecuteAsync(Core.Common.DTOs.Requests.ClientRequest client, Uri requestUri, string authorizationValue)
        {
            if (client == null)
            {
                throw new ArgumentNullException(nameof(client));
            }

            if (requestUri == null)
            {
                throw new ArgumentNullException(nameof(requestUri));
            }

            var httpClient = _httpClientFactory.GetHttpClient();
            var json       = JsonConvert.SerializeObject(client, new JsonSerializerSettings
            {
                NullValueHandling = NullValueHandling.Ignore
            });
            var request = new HttpRequestMessage
            {
                Method     = HttpMethod.Post,
                Content    = new StringContent(json),
                RequestUri = requestUri
            };

            request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
            if (!string.IsNullOrWhiteSpace(authorizationValue))
            {
                request.Headers.Add("Authorization", "Bearer " + authorizationValue);
            }

            var result = await httpClient.SendAsync(request).ConfigureAwait(false);

            var content = await result.Content.ReadAsStringAsync().ConfigureAwait(false);

            try
            {
                result.EnsureSuccessStatusCode();
            }
            catch (Exception)
            {
                return(new GetRegisterClientResult
                {
                    ContainsError = true,
                    Error = JsonConvert.DeserializeObject <ErrorResponseWithState>(content),
                    Status = result.StatusCode
                });
            }

            return(new GetRegisterClientResult
            {
                ContainsError = false,
                Content = JsonConvert.DeserializeObject <ClientRegistrationResponse>(content)
            });
        }
        public Task <GetRegisterClientResult> ExecuteAsync(Core.Common.DTOs.Requests.ClientRequest client, Uri registrationUri, string accessToken)
        {
            if (client == null)
            {
                throw new ArgumentNullException(nameof(client));
            }

            if (registrationUri == null)
            {
                throw new ArgumentNullException(nameof(registrationUri));
            }

            return(_registerClientOperation.ExecuteAsync(client, registrationUri, accessToken));
        }
        public async Task <GetRegisterClientResult> ResolveAsync(Core.Common.DTOs.Requests.ClientRequest client, string configurationUrl, string accessToken)
        {
            if (string.IsNullOrWhiteSpace(configurationUrl))
            {
                throw new ArgumentNullException(nameof(configurationUrl));
            }

            Uri uri = null;

            if (!Uri.TryCreate(configurationUrl, UriKind.Absolute, out uri))
            {
                throw new ArgumentException(string.Format(ErrorDescriptions.TheUrlIsNotWellFormed, configurationUrl));
            }

            var discoveryDocument = await _getDiscoveryOperation.ExecuteAsync(uri).ConfigureAwait(false);

            return(await ExecuteAsync(client, discoveryDocument.RegistrationEndPoint, accessToken).ConfigureAwait(false));
        }
        public Task <GetRegisterClientResult> ExecuteAsync(Core.Common.DTOs.Requests.ClientRequest client, string registrationUrl, string accessToken)
        {
            if (client == null)
            {
                throw new ArgumentNullException(nameof(client));
            }

            if (string.IsNullOrWhiteSpace(registrationUrl))
            {
                throw new ArgumentNullException(nameof(registrationUrl));
            }

            Uri uri = null;

            if (!Uri.TryCreate(registrationUrl, UriKind.Absolute, out uri))
            {
                throw new ArgumentException(string.Format(ErrorDescriptions.TheUrlIsNotWellFormed, registrationUrl));
            }

            return(ExecuteAsync(client, uri, accessToken));
        }
 public GetRegisterClientResult Execute(Core.Common.DTOs.Requests.ClientRequest client, string registrationUrl, string accessToken)
 {
     return(ExecuteAsync(client, registrationUrl, accessToken).Result);
 }