diff --git a/src/src/AfasBase.cs b/src/src/AfasBase.cs index 5d6382a..2f6895b 100644 --- a/src/src/AfasBase.cs +++ b/src/src/AfasBase.cs @@ -19,6 +19,8 @@ public class AfasBase : GeneralBase protected string Token64 { get; set; } + protected string IntegrationId { get; set; } + protected override string GetBaseUrl { get @@ -38,6 +40,7 @@ protected override async Task GetAuthHttp(string urlPath) } }) { + AddIntegrationId(httpRequestMessage); return await httpClient.SendAsync(httpRequestMessage); } } @@ -55,6 +58,7 @@ protected override async Task SendAuthHttp(string urlPath, Content = new StringContent(content) }) { + AddIntegrationId(httpRequestMessage); return await httpClient.SendAsync(httpRequestMessage); } } @@ -72,6 +76,15 @@ protected override async Task OtpPost(string urlPath, strin } } + private void AddIntegrationId(HttpRequestMessage httpRequestMessage) + { + if (httpClient.DefaultRequestHeaders.Contains("IntegrationId")) + httpClient.DefaultRequestHeaders.Remove("IntegrationId"); + if (!string.IsNullOrWhiteSpace(this.IntegrationId)) + { + httpRequestMessage.Headers.Add("IntegrationId", this.IntegrationId); + } + } } } diff --git a/src/src/AfasClient.cs b/src/src/AfasClient.cs index e44225a..47cbb20 100644 --- a/src/src/AfasClient.cs +++ b/src/src/AfasClient.cs @@ -10,14 +10,21 @@ namespace DutchGrit.Afas public class AfasClient : AfasBase, IAfasClient { - - public AfasClient(int MemberNumber, string Token, Environments Env = Environments.Production, HttpClient customHttpClient=null) + /// + /// Constructor for the AfasClient + /// + /// The integrationId to add as a request header. https://docs.afas.help/Profit/nl/IntegrationId + /// + /// Note: If a customHttpClient is provided, the integrationId header will be overwritten by the integrationId parameter. + /// + public AfasClient(int MemberNumber, string Token, Environments Env = Environments.Production, HttpClient customHttpClient = null, string integrationId = null) { this.MemberNumber = MemberNumber; this.Environment = Env; //Convert the Token string into Base64. var authToken = Encoding.ASCII.GetBytes(Token); this.Token64 = "AfasToken " + Convert.ToBase64String(authToken); + this.IntegrationId = integrationId; if (customHttpClient != null)