コード例 #1
0
        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));
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }