public async Task <AddClientResponse> AddClient(AddClientParameter parameter) { if (parameter == null) { throw new ArgumentNullException(nameof(parameter)); } var client = _httpClientFactory.GetHttpClient(); var jObj = ToDto(parameter); var content = new StringContent(jObj.ToString(), Encoding.UTF8, "application/json"); var request = new HttpRequestMessage { Method = HttpMethod.Post, RequestUri = new Uri(_baseUrl + "/v0.1/customers"), Content = content }; request.Headers.Add("Authorization", $"Bearer {parameter.AccessToken}"); var serializedContent = await client.SendAsync(request).ConfigureAwait(false); serializedContent.EnsureSuccessStatusCode(); var json = await serializedContent.Content.ReadAsStringAsync(); return(ToClientModel(JObject.Parse(json))); }
private static JObject ToDto(AddClientParameter parameter) { var result = new JObject(); var personalDetails = new JObject(); var adr = new JObject(); personalDetails.Add(Constants.DtoNames.ClientNames.Name, parameter.Name); personalDetails.Add(Constants.DtoNames.ClientNames.Phone, parameter.Phone); if (parameter.Address != null) { adr.Add(Constants.DtoNames.SumupAddressNames.Line1, parameter.Address.Line1); adr.Add(Constants.DtoNames.SumupAddressNames.Line2, parameter.Address.Line2); adr.Add(Constants.DtoNames.SumupAddressNames.Country, parameter.Address.Country); adr.Add(Constants.DtoNames.SumupAddressNames.PostalCode, parameter.Address.PostalCode); adr.Add(Constants.DtoNames.SumupAddressNames.City, parameter.Address.City); adr.Add(Constants.DtoNames.SumupAddressNames.State, parameter.Address.State); personalDetails.Add(Constants.DtoNames.ClientNames.Address, adr); } result.Add(Constants.DtoNames.ClientNames.Id, parameter.Id); result.Add(Constants.DtoNames.ClientNames.PersonalDetails, personalDetails); return(result); }