public void ShouldConvertJsonToSpecifiedFormat() { string jsonFromDb = "{\"numero_pedido\":\"OR1234\",\"comprador\":{\"aniversario\":\"1991-05-20T00:00:00\",\"documento\":\"12345678900\",\"email\":\"[email protected]\",\"telefone\":\"552122225555\",\"celular\":\"5521999995555\",\"nome\":\"Fulano Silva\",\"tipo\":\"pessoa_fisica\",\"endereco\":{\"cidade\":\"Rio de Janeiro\",\"complemento\":\"Apto 1011\",\"pais\":\"Brazil\",\"bairro\":\"Centro\",\"numero\":\"123\",\"estado\":\"RJ\",\"logradouro\":\"Rua Souza\",\"cep\":\"23021130\"}},\"pagamento\":{\"valor\":210,\"parcelas\":\"5\",\"endereco_cobranca\":{\"cidade\":\"Rio de Janeiro\",\"complemento\":\"Apto 1011\",\"pais\":\"Brazil\",\"bairro\":\"Centro\",\"numero\":\"123\",\"estado\":\"RJ\",\"logradouro\":\"Rua Souza\",\"cep\":\"23021130\"},\"cartao\":{\"bandeira\":\"Visa\",\"numero_cartao\":\"4000000000000010\",\"mes_vencimento\":\"10\",\"ano_vencimento\":\"2022\",\"nome_cartao\":\"FULANO SILVA\",\"cvv\":\"321\"}},\"entrega\":{\"endereco_entrega\":{\"cidade\":\"Rio de Janeiro\",\"complemento\":\"Apto 1011\",\"pais\":\"Brazil\",\"bairro\":\"Centro\",\"numero\":\"123\",\"estado\":\"RJ\",\"logradouro\":\"Rua Souza\",\"cep\":\"23021130\"},\"frete\":10,\"shipping_company\":\"Correios\"},\"carriinho\":{\"items\":[{\"produto\":\"Discos Vinil\",\"quantidade\":10,\"valor_unit\":10},{\"produto\":\"Toca Viniil\",\"quantidade\":1,\"valor_unit\":100}]}}"; string jsonFromRequest = "{\"numero_pedido\":\"OR1235\",\"comprador\":{\"aniversario\":\"1991-05-20T00:00:00\",\"documento\":\"12345678900\",\"email\":\"[email protected]\",\"telefone\":\"552122225555\",\"celular\":\"5521999995555\",\"nome\":\"Fulano Silva\",\"tipo\":\"pessoa_fisica\",\"endereco\":{\"cidade\":\"Rio de Janeiro\",\"complemento\":\"Apto 1011\",\"pais\":\"Brazil\",\"bairro\":\"Centro\",\"numero\":\"123\",\"estado\":\"RJ\",\"logradouro\":\"Rua Souza\",\"cep\":\"23021130\"}},\"pagamento\":{\"valor\":210,\"parcelas\":\"5\",\"endereco_cobranca\":{\"cidade\":\"Rio de Janeiro\",\"complemento\":\"Apto 1011\",\"pais\":\"Brazil\",\"bairro\":\"Centro\",\"numero\":\"123\",\"estado\":\"RJ\",\"logradouro\":\"Rua Souza\",\"cep\":\"23021130\"},\"cartao\":{\"bandeira\":\"Visa\",\"numero_cartao\":\"4000000000000010\",\"mes_vencimento\":\"10\",\"ano_vencimento\":\"2022\",\"nome_cartao\":\"FULANO SILVA\",\"cvv\":\"321\"}},\"entrega\":{\"endereco_entrega\":{\"cidade\":\"Rio de Janeiro\",\"complemento\":\"Apto 1011\",\"pais\":\"Brazil\",\"bairro\":\"Centro\",\"numero\":\"123\",\"estado\":\"RJ\",\"logradouro\":\"Rua Souza\",\"cep\":\"23021130\"},\"frete\":10,\"shipping_company\":\"Correios\"},\"carriinho\":{\"items\":[{\"produto\":\"Discos Vinil\",\"quantidade\":10,\"valor_unit\":10},{\"produto\":\"Toca Viniil\",\"quantidade\":1,\"valor_unit\":100}]}}"; //string jsonFromRequest = "{\"numero_pedido\":\"OR1234\",\"comprador\":{\"aniversario\":\"1991-05-20T00:00:00\",\"documento\":\"12345678900\",\"email\":\"[email protected]\",\"telefone\":\"552122225555\",\"celular\":\"5521999995555\",\"nome\":\"Fulano Silva\",\"tipo\":\"pessoa_fisica\",\"endereco\":{\"cidade\":\"Rio de Janeiro\",\"complemento\":\"Apto 1011\",\"pais\":\"BR\",\"bairro\":\"Centro\",\"numero\":\"123\",\"estado\":\"RJ\",\"logradouro\":\"Rua Souza\",\"cep\":\"23021130\"}},\"pagamento\":{\"valor\":210,\"parcelas\":\"5\",\"endereco_cobranca\":{\"cidade\":\"Rio de Janeiro\",\"complemento\":\"Apto 1011\",\"pais\":\"BR\",\"bairro\":\"Centro\",\"numero\":\"123\",\"estado\":\"RJ\",\"logradouro\":\"Rua Souza\",\"cep\":\"23021130\"},\"cartao\":{\"bandeira\":\"Visa\",\"numero_cartao\":\"4000000000000010\",\"mes_vencimento\":\"10\",\"ano_vencimento\":\"2022\",\"nome_cartao\":\"FULANO SILVA\",\"cvv\":\"321\"}},\"entrega\":{\"endereco_entrega\":{\"cidade\":\"Rio de Janeiro\",\"complemento\":\"Apto 1011\",\"pais\":\"BR\",\"bairro\":\"Centro\",\"numero\":\"123\",\"estado\":\"RJ\",\"logradouro\":\"Rua Souza\",\"cep\":\"23021130\"},\"frete\":10,\"shipping_company\":\"Correios\"},\"carriniho\":{\"items\":[{\"produto\":\"Discos Vinil\",\"quantidade\":10,\"valor_unit\":10},{\"produto\":\"Toca Viniil\",\"quantidade\":1,\"valor_unit\":100}]}}"; Assert.True(jsonFromRequest.HasSameKeys(jsonFromDb)); var jsonDataDictionary = jsonFromRequest.GetKeyAndValuesToDictionary(); Assert.True(jsonDataDictionary.CanBeMappedTo(_customerPropertyMappings)); Assert.True(jsonDataDictionary.CanBeMappedTo(_itemPropertyMappings)); Assert.True(jsonDataDictionary.CanBeMappedTo(_paymentPropertyMappings)); var mundiPaggOrder = new MundiPaggOrder(); var payment = PaymentFactory.Create(jsonDataDictionary, _paymentPropertyMappings); mundiPaggOrder.Payments.Add(payment); var customer = CustomerFactory.Create(jsonDataDictionary, _customerPropertyMappings); mundiPaggOrder.Customer = customer; var itens = ItensFactory.CreateList(jsonDataDictionary, _itemPropertyMappings); mundiPaggOrder.Items = itens; Assert.True(mundiPaggOrder.Items.Any() && mundiPaggOrder.Payments.Any() && !string.IsNullOrEmpty(mundiPaggOrder.Customer.Name)); }
public static MundiPaggOrder Create( Dictionary <string, string> jsonDataDictionary, Dictionary <string, string> customerMap, Dictionary <string, string> paymentMap, Dictionary <string, string> itensMap, Dictionary <string, string> orderMap) { var mundiPaggOrder = new MundiPaggOrder(); mundiPaggOrder.Items = new List <CreateOrderItemRequest>(); mundiPaggOrder.Customer = new CreateCustomerRequest(); mundiPaggOrder.Payments = new List <CreatePaymentRequest>(); mundiPaggOrder.Code = GetOrderCode(jsonDataDictionary, orderMap); var payment = PaymentFactory.Create(jsonDataDictionary, paymentMap); mundiPaggOrder.Payments.Add(payment); var customer = CustomerFactory.Create(jsonDataDictionary, customerMap); mundiPaggOrder.Customer = customer; var itens = ItensFactory.CreateList(jsonDataDictionary, itensMap); mundiPaggOrder.Items = itens; return(mundiPaggOrder); }
public static OrderRequest Create(MundiPaggOrder mundiPaggOrder) { var orderRequest = new OrderRequest(); orderRequest.Id = mundiPaggOrder.Code; orderRequest.Request = JsonSerializer.Serialize(mundiPaggOrder); orderRequest.ResponseDate = DateTime.Now; return(orderRequest); }
public void CreateOrder(string orderRequestJson) { MundiPaggOrder mundiPaggOrder = MundiPaggOrderFactory.Create(orderRequestJson.GetKeyAndValuesToDictionary(), _customerPropertyMappings, _paymentPropertyMappings, _itemPropertyMappings, _orderPropertyMappings); var orderRequest = OrderRequestFactory.Create(mundiPaggOrder); var createOrderRequestCommand = new CreateOrderRequestCommand( orderRequest.Id, DateTime.Now); _bus.SendCommand(createOrderRequestCommand); AddOrderRequest(orderRequest); }
public static CreateOrderRequest Create(MundiPaggOrder mundiPaggOrder) { CreateCustomerRequest customer = mundiPaggOrder.Customer; List <CreateOrderItemRequest> items = mundiPaggOrder.Items.Cast <CreateOrderItemRequest>().ToList(); List <CreatePaymentRequest> payments = mundiPaggOrder.Payments.Cast <CreatePaymentRequest>().ToList(); var order = new CreateOrderRequest() { Items = items, Customer = customer, Payments = payments }; return(order); }