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(); }
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; } }