public ActionResult <ProvisionCustomerResponse> ProvisionCustomer([FromBody] ProvisionCustomerRequest request) { try { var customer = this.DbContext.Customers.Add(new Customer() { FirstName = request.FirstName, LastName = request.LastName, Email = request.Email, Basket = new Basket() }).Entity; this.DbContext.Save(); ProvisionCustomerResponse response = new ProvisionCustomerResponse() { CustomerId = customer.CustomerId, OriginalRequest = request }; return(Ok(response)); } catch { return(BadRequest()); } }
/// <summary> /// Create customer in the API repository /// </summary> /// <param name="firstName"></param> /// <param name="lastName"></param> /// <param name="email"></param> public void ProvisionCustomer(string firstName, string lastName, string email) { using (HttpClient client = GetHttpClient()) { ProvisionCustomerRequest request = new ProvisionCustomerRequest() { FirstName = firstName, LastName = lastName, Email = email }; HttpContent content = new StringContent(JsonConvert.SerializeObject(request), Encoding.UTF8, "application/json"); var result = client.PutAsync(ApiUrls.CustomerProvision, content).Result; result.EnsureSuccessStatusCode(); var response = JsonConvert.DeserializeObject <ProvisionCustomerResponse>(result.Content.ReadAsStringAsync().Result); this.CustomerId = response.CustomerId; if (!string.IsNullOrEmpty(response.Failure?.ReasonForFailure)) { throw new Exception(response.Failure.ReasonForFailure); } } }