public dynamic EnviarDadosTiny(DadosTiny dadosEnviarTiny)
        {
            Console.WriteLine("Enviando pedido: {0} na Tiny", dadosEnviarTiny.numero_pedido_ecommerce);
            try
            {
                XmlSerializer serializer = new XmlSerializer(typeof(DadosTiny));

                // create a MemoryStream here, we are just working
                // exclusively in memory
                System.IO.Stream stream = new System.IO.MemoryStream();

                // The XmlTextWriter takes a stream and encoding
                // as one of its constructors
                System.Xml.XmlTextWriter xtWriter = new System.Xml.XmlTextWriter(stream, Encoding.UTF8);

                serializer.Serialize(xtWriter, dadosEnviarTiny);

                xtWriter.Flush();

                // go back to the beginning of the Stream to read its contents
                stream.Seek(0, System.IO.SeekOrigin.Begin);

                // read back the contents of the stream and supply the encoding
                System.IO.StreamReader reader = new System.IO.StreamReader(stream, Encoding.UTF8);

                var xmlEnvio = reader.ReadToEnd();

                var client = new TinyService.tinywsdlPortTypeClient();
                //var ret = client.incluirPedidoServiceAsync(TokenTiny, dadosEnviarTiny, "JSON");
                var ret = client.incluirPedidoService(TokenTiny, xmlEnvio, "XML");
                client.Close();

                return(ObjectToXML(ret, typeof(Retorno)));
            }

            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }


            /*
             * XmlSerializer serializer = new XmlSerializer(typeof(DadosTiny));
             *
             * System.IO.StringWriter sWriter = new System.IO.StringWriter();
             *
             * serializer.Serialize(sWriter, dadosEnviarTiny);
             * sWriter.Flush();
             *
             * string xmlEnvio = sWriter.ToString();
             *
             * //var xmlEnvio = GetXMLFromObject(dadosEnviarTiny);
             * var client = new TinyService.tinywsdlPortTypeClient();
             * //var ret = client.incluirPedidoServiceAsync(TokenTiny, dadosEnviarTiny, "JSON");
             * var ret = client.incluirPedidoService(TokenTiny, xmlEnvio, "XML");
             * return ret;
             */
        }
        public void BuscarDadosNaCeC2()
        {
            Console.WriteLine("\nBuscando pedidos na C&C");
            var totalPedidosIntegrados = 0;
            var totalPedidosComErros   = 0;
            var qtdDePedidos           = 0;
            var ctrTiny = new ControleTiny();
            var result  = new CeCService.PedidoCompraFornecedoresSoapClient();
            var res     = result.ListarPedidosNaoVisualizados(Login, Senha).pedidos;

            result.Close();

            if (res.Length < 1)
            {
                Console.Clear();
                Console.WriteLine("\nNenhum pedido foi encontrado na base de dados da C&C!\n");
                Console.WriteLine("Total de pedidos: {0}.", totalPedidosIntegrados + totalPedidosComErros);
                Console.WriteLine("Total de pedidos integrados: {0}.", totalPedidosIntegrados);
                Console.WriteLine("Total de pedidos com erros na integração: {0}.", totalPedidosIntegrados);
                Console.WriteLine("\nPressione qualquer tecla para voltar ao menu principal.");

                return;
            }

            foreach (var pedido in res)
            {
                ++qtdDePedidos;
                if (qtdDePedidos > 20)
                {
                    Thread.Sleep(60000);
                    Console.WriteLine("Tempo de espera acionado devido a Limites da API...\n O processo vai continuar a depois de 1 minuto!");
                    Console.WriteLine();
                    qtdDePedidos = 0;
                }

                Console.WriteLine("Processando pedido vindo da C&C número: {0}.", pedido.header.numpedidoantigo);
                var listaItens = pedido.itens.Select(pedidoIten => new Item
                {
                    codigo         = pedidoIten.codproddf,
                    descricao      = pedidoIten.descricao,
                    quantidade     = pedidoIten.qtde,
                    unidade        = pedidoIten.unidmaior,
                    valor_unitario = pedidoIten.precounit,
                })
                                 .ToList();

                var clienteTemp = new Cliente
                {
                    bairro            = "",
                    atualizar_cliente = "N",
                    cep           = pedido.header.filialentrega.endereco.cep,
                    cidade        = pedido.header.filialentrega.endereco.municipio,
                    codigo        = "",
                    complemento   = "",
                    cpf_cnpj      = pedido.header.filialentrega.cgccpf,
                    endereco      = pedido.header.filialentrega.endereco.ender,
                    fone          = pedido.header.filialentrega.fone,
                    ie            = pedido.header.filialentrega.ie,
                    nome          = pedido.header.filialfatura.nomeloja,
                    nome_fantasia = pedido.header.filialfatura.nomeloja,
                    numero        = "",
                    rg            = "",
                    tipo_pessoa   = "J",
                    uf            = pedido.header.filialentrega.endereco.uf
                };

                var dadosTiny = new DadosTiny
                {
                    data_pedido             = (pedido.header.dataemissao).ToString("d"),
                    data_prevista           = (pedido.header.dataentrega).ToString("d"),
                    cliente                 = clienteTemp,
                    items                   = listaItens,
                    nome_transportador      = "",
                    forma_pagamento         = "",
                    frete_por_conta         = "",
                    valor_frete             = "",
                    valor_desconto          = "",
                    numero_ordem_compra     = pedido.header.numpedidoantigo,
                    numero_pedido_ecommerce = pedido.header.numpedidoantigo,
                    situacao                = "",
                    obs         = "",
                    forma_envio = "",
                    forma_frete = "",
                };

                var ret = ctrTiny.EnviarDadosTiny(dadosTiny);

                if (ret.status.ToUpper() == "ERRO")
                {
                    if (ret.codigo_erro == 2)
                    {
                        Console.WriteLine("Verifique o token usado na conexão com Tiny ERP.");
                    }
                    else
                    {
                        ConfirmarRecebimentoPedido2(pedido.header.numpedidoantigo, true);
                        ++totalPedidosComErros;
                        Console.WriteLine("Pedido vindo da C&C nº: {0}, nao foi integrado pelo motivo abaixo:\n{1}", pedido.header.numpedidoantigo, ret.registros.registro.erros.erro || ret.erro);
                    }
                }
                else
                {
                    try
                    {
                        ConfirmarRecebimentoPedido2(pedido.header.numpedidoantigo, true);
                        ++totalPedidosIntegrados;
                        Console.WriteLine("Pedido integrado com sucesso!\nNumero do pedido gerado pelo tiny: {0}", ret.registros.registro.numero);
                    }

                    catch (Exception e)
                    {
                        Console.WriteLine(e);
                        throw;
                    }
                }

                Console.WriteLine("-----------------------------------------------");
            }
            Console.Clear();
            Console.WriteLine("Total de pedidos: {0}.", totalPedidosIntegrados + totalPedidosComErros);
            Console.WriteLine("Total de pedidos integrados: {0}.", totalPedidosIntegrados);
            Console.WriteLine("Total de pedidos com erros na integração: {0}.", totalPedidosIntegrados);
            Console.WriteLine("\nPressione qualquer tecla para voltar ao menu principal.");

            return;
        }