예제 #1
0
        static void Main(string[] args)
        {
            // Cria um novo client e define o responsável pelo tratamento do retorno
            var soapClient = new ClientesCadastroSoapClient();

            // Define os dados de autenticação
            var builder = new EndpointAddressBuilder(soapClient.Endpoint.Address);

            builder.Headers.Add(AddressHeader.CreateAddressHeader("app_key", "", omie_app_key));
            builder.Headers.Add(AddressHeader.CreateAddressHeader("app_secret", "", omie_app_secret));
            soapClient.Endpoint.Address = builder.ToEndpointAddress();

            CBLog("Exemplo DotNet");
            CBLog("");
            CBLog("  1 - Atualizar um cliente");
            CBLog("  2 - Listar clientes");
            CBLog("");
            CBLog("      Opção: ", false);

            var a = Console.ReadKey();

            CBLog("");
            CBLog("");

            if (a.KeyChar == '1')
            {
                // Upsert no cadastro de cliente
                CBLog("Atualizando o cadastro do cliente... ", false);
                var cliente = new clientes_cadastro
                {
                    razao_social = "Omiexperience S/A",
                    cnpj_cpf     = "18.511.742/0001-47",
                    cidade       = "SAO PAULO (SP)",
                    estado       = "SP",
                    codigo_cliente_integracao = "444"
                };

                // Executa a chamada
                soapClient.UpsertClienteCompleted += OnSoapClientOnUpsertClienteCompleted;
                soapClient.UpsertClienteAsync(cliente);
            }
            else if (a.KeyChar == '2')
            {
                CBLog("Listando clientes cadastrados... ");

                var clientes_filtro = new clientes_list_request();
                clientes_filtro.apenas_importado_api = "N";
                clientes_filtro.pagina = "1";
                clientes_filtro.registros_por_pagina = "3";

                soapClient.ListarClientesCompleted += soapClient_ListarClientesCompleted;
                soapClient.ListarClientesAsync(clientes_filtro);
            }

            Console.ReadKey();
        }
예제 #2
0
        private void SyncOmieToLocal(int pagina = -1)
        {
            try
            {
                clientes_list_request filtro = new clientes_list_request();
                clienteBLL = new ClienteBLL();


                if (Mensagem != null)
                {
                    Mensagem.Text = "Sincronizando cadastro de  Clientes";
                    Application.DoEvents();
                }

                filtro.apenas_importado_api     = "N";
                filtro.filtrar_apenas_alteracao = "S";
                if (pagina == -1)
                {
                    filtro.pagina = "1";
                    pagina        = 1;
                }
                else
                {
                    filtro.pagina = Convert.ToString(pagina);
                }

                filtro.registros_por_pagina = "200";

                clientes_listfull_response resp = soapClient.ListarClientes(filtro);

                if (ProgressBar != null)
                {
                    if (resp != null)
                    {
                        NrTotalRegistro = Convert.ToInt32(resp.total_de_registros);
                    }

                    ProgressBar.Maximum = NrTotalRegistro;
                }

                foreach (clientes_cadastro item in resp.clientes_cadastro)
                {
                    //chama o metodo que faz o inset da cliente na base.
                    long?codigo_cliente_omie = Convert.ToInt64(item.codigo_cliente_omie);

                    List <Cliente> ClienteList = clienteBLL.getCliente(c => c.codigo_cliente_omie == codigo_cliente_omie);

                    if (ClienteList.Count() <= 0)
                    {
                        Cliente cliente = toCliente(item);
                        clienteBLL.AdicionarCliente(cliente);
                    }
                    else
                    {
                        Cliente cliente = ClienteList.First();
                        cliente = toCliente(item, cliente);
                        clienteBLL.AlterarCliente(cliente);
                    }
                    RegistroAtual++;
                    if (ProgressBar != null)
                    {
                        ProgressBar.Value = RegistroAtual;
                        ProgressBar.Refresh();
                        Application.DoEvents();
                        if (QtdRegistros != null)
                        {
                            QtdRegistros.Text = RegistroAtual.ToString() + " de " + NrTotalRegistro.ToString();
                            Application.DoEvents();
                        }
                    }
                }

                if (Convert.ToInt32(resp.total_de_paginas) > pagina)
                {
                    pagina++;
                    SyncOmieToLocal(pagina);
                }
            }
            catch (Exception)
            {
                throw;
            }
        }