private ServiceObject InitialMatch(string b2cObjectId) { tryagain: HttpRequestMessage request = new HttpRequestMessage( method: HttpMethod.Get, requestUri: D365Client.BaseAddress + $"contacts?$select=defra_uniquereference,defra_securityword&$filter=defra_b2cobjectid eq '{b2cObjectId}'"); HttpResponseMessage content = D365Client.SendAsync(request).Result; if (!content.IsSuccessStatusCode) { if (content.StatusCode == System.Net.HttpStatusCode.TooManyRequests || content.StatusCode == System.Net.HttpStatusCode.Unauthorized) { D365Client = ClientFactory.GetHttpClient(moveToken: true); goto tryagain; } throw new WebFaultException(content.ReasonPhrase, (int)content.StatusCode); } InitialMatchResponse contactResponse = JsonConvert.DeserializeObject <InitialMatchResponse>(content.Content.ReadAsStringAsync().Result); ServiceObject returnObj = new ServiceObject(); if (contactResponse?.Value?.Count > 0) { if (contactResponse.Value.Count == 1) { returnObj.ServiceUserID = contactResponse.Value[0].ServiceUserID; returnObj.UniqueReferenceId = contactResponse.Value[0].UniqueReferenceId; returnObj.securityWordSet = !string.IsNullOrWhiteSpace(contactResponse.Value[0].defra_securityword) ? true : false; returnObj.ErrorCode = 200; } else { returnObj.ErrorCode = 412; returnObj.ErrorMsg = "Multiple records found"; } } else { returnObj.ErrorCode = 204; returnObj.ErrorMsg = "No Content"; } return(returnObj); }
/// <summary> /// https://defra-custmstr-sanbox.api.crm4.dynamics.com/api/data/v8.2/contacts?$select=contactid,defra_uniquereference&$filter=defra_b2cobjectid eq '7b1ad2d0-7946-11e8-8d36-851e870eee8a' /// </summary> /// <param name="b2cObjectId"></param> /// <returns></returns> public ServiceObject InitialMatch(string b2cObjectId) { HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, httpClient.BaseAddress + "contacts?$select=contactid,defra_uniquereference&$filter=defra_b2cobjectid eq '" + b2cObjectId + "'"); //request.Content.Headers.ContentType = MediaTypeHeaderValue.Parse("application/json"); var content = httpClient.SendAsync(request).Result; if (!content.IsSuccessStatusCode) { throw new WebFaultException(content.ReasonPhrase, (int)content.StatusCode); } InitialMatchResponse contactResponse = JsonConvert.DeserializeObject <InitialMatchResponse>(content.Content.ReadAsStringAsync().Result); ServiceObject returnObj = new ServiceObject() { ErrorCode = 200 }; if (contactResponse != null && contactResponse.value != null && contactResponse.value.Count > 0) { if (contactResponse.value.Count == 1) { returnObj.ServiceUserID = contactResponse.value[0].ServiceUserID; returnObj.UniqueReferenceId = contactResponse.value[0].UniqueReferenceId; } else { returnObj.ErrorCode = 412; returnObj.ErrorMsg = "Multiple records found"; } } else { returnObj.ErrorCode = 204; returnObj.ErrorMsg = "No Content"; } return(returnObj); }