public HttpResponseMessage Post() { try { System.Threading.Tasks.Task <string> content = Request.Content.ReadAsStringAsync(); Object jobj = new object(); var orderId = new TransactionLibrary().GetOrderId(); //dados da operação jobj = JObject.Parse(content.Result); JToken client_id = JObject.Parse(jobj.ToString()).SelectToken("client_id"); JToken cart_id = JObject.Parse(jobj.ToString()).SelectToken("cart_id"); JToken client_name = JObject.Parse(jobj.ToString()).SelectToken("client_name"); JToken value_to_pay = JObject.Parse(jobj.ToString()).SelectToken("value_to_pay"); JToken credit_card = JObject.Parse(jobj.ToString()).SelectToken("credit_card"); #region Cartão de Crédito //dados do cartão de crédito jobj = JObject.Parse(credit_card.ToString()); JToken number = JObject.Parse(jobj.ToString()).SelectToken("number"); JToken cvv = JObject.Parse(jobj.ToString()).SelectToken("cvv"); JToken exp_date = JObject.Parse(jobj.ToString()).SelectToken("exp_date"); JToken card_holder_name = JObject.Parse(jobj.ToString()).SelectToken("card_holder_name"); CreditCard creditCard = new CreditCard(); creditCard.card_number = number.ToString(); creditCard.cvv = Convert.ToInt32(cvv); creditCard.exp_date = exp_date.ToString(); creditCard.card_holder_name = card_holder_name.ToString(); //registra o cartão de crédito CreditCardBLL creditCardBll = new CreditCardBLL(); creditCardBll.Inserir(creditCard); #endregion #region Transação //registra a transação de venda Transaction transaction = new Transaction(); transaction.client_id = client_id.ToString(); transaction.cart_id = cart_id.ToString(); transaction.client_name = client_name.ToString(); transaction.total_to_pay = Convert.ToInt32(value_to_pay); transaction.credit_card = creditCard.card_number; transaction.order_id = orderId; transaction.date = DateTime.Today.ToString("dd/MM/yyyy"); TransactionBLL transactionBll = new TransactionBLL(); transactionBll.Inserir(transaction); #endregion #region Histórico History history = new History(); history.card_number = creditCard.card_number; history.client_id = transaction.client_id; history.value = transaction.total_to_pay; history.order_id = orderId; HistoryBLL historyBll = new HistoryBLL(); historyBll.Inserir(history); #endregion return(Request.CreateResponse(HttpStatusCode.OK, new { message = "Compra realizada com sucesso!" })); } catch (Exception ex) { return(Request.CreateResponse(HttpStatusCode.InternalServerError, new { message = ex.Message.ToString() })); } }