Exemplo n.º 1
0
        public RestClient(IHttpClient client, IRestClientSettings settings)
        {
            if (settings == null)
            {
                throw new ArgumentNullException(nameof(settings));
            }
            if (client == null)
            {
                throw new ArgumentNullException(nameof(client));
            }

            if (settings.BaseUri != null)
            {
                client.BaseAddress = settings.BaseUri;
            }
            else if (client.BaseAddress != null)
            {
                settings.BaseUri = client.BaseAddress;
            }
            else
            {
                throw new ArgumentException("A base URI is required.");
            }

            if (settings.DefaultHeaders != null)
            {
                foreach (var header in settings.DefaultHeaders)
                {
                    client.AddDefaultHeader(header.Key, header.Value);
                }
            }

            Settings   = settings;
            HttpClient = client;
        }
        public async Task <IHttpClient> CreateClientAsync(bool formatForFetchXml)
        {
            var accessToken = await _dynamics365AuthenticationService.GetAccessTokenAsync().ConfigureAwait(false);

            _client = new RestfulHttpClient();
            _client.SetBaseUrl(_configuration.OrganizationUrl);
            _client.AddDefaultHeader("OData-MaxVersion", "4.0");
            _client.AddDefaultHeader("OData-Version", "4.0");
            _client.AddDefaultHeader("Accept", "application/json");
            _client.AddDefaultHeader("Authorization", "Bearer " + accessToken);

            if (formatForFetchXml)
            {
                _client.AddDefaultHeader("Prefer", "odata.include-annotations=\"OData.Community.Display.V1.FormattedValue\"");
            }

            return(_client);
        }