public void Sincronizar() { concluiu = false; List <Sinc> ls = BancoDeDados.Query <Sinc>("select * from Sinc"); Sinc ultSinc = ls.Count > 0 ? ls[0] : new Sinc(); List <Log> atualizacoes = BancoDeDados.Query <Log>("select * from Log order by Id"); List <string> lista = new List <string>(); foreach (Log log in atualizacoes) { lista.Add(log.Sql); } TCCWSClient client = new TCCWSClient(); client.SincronizarCompleted += SincronizarCompleted; client.SincronizarAsync(lista, ultSinc.getUltimaSinc(), Windows.Phone.System.Analytics.HostInformation.PublisherHostId); }
void SincronizarCompleted(object sender, SincronizarCompletedEventArgs e) { try { if (e.Result != null) { Atualizacao a = e.Result; BancoDeDados.BeginTransaction(); BancoDeDados.DeleteAll<Log>(); #region Cliente List<Cliente> clientes = new List<Cliente>(a.clientes.Count); foreach (ClienteWS item in a.clientes) { clientes.Add(new Cliente() { Id = item.Id, Nome = item.Nome, Cpf = item.Cpf, Rua = item.Rua, Numero = item.Numero, Bairro = item.Bairro, Cidade = item.Cidade, Uf = item.Uf, Cep = item.Cep, Complemento = item.Complemento, Telefone = item.Telefone, Email = item.Email, Ativo = item.Ativo }); } BancoDeDados.Atualiza<Cliente>(clientes); #endregion #region Produto List<Produto> produtos = new List<Produto>(a.produtos.Count); foreach (ProdutoWS item in a.produtos) { produtos.Add(new Produto() { Id = item.Id, Nome = item.Nome, Estoque = item.Estoque, Valor = item.Valor, Ativo = item.Ativo }); } BancoDeDados.Atualiza<Produto>(produtos); #endregion #region Pedido List<Pedido> pedidos = new List<Pedido>(a.pedidos.Count); foreach (PedidoWS item in a.pedidos) { pedidos.Add(new Pedido() { Id = item.Id, IdCliente = item.IdCliente, IdVendedor = item.IdVendedor, Valor = item.Valor, DataEmissao = item.DataEmissao, DataPagamento = item.DataPagamento, Observacoes = item.Observacoes }); } BancoDeDados.Atualiza<Pedido>(pedidos); #endregion #region Produtos Pedido List<ProdutoPedido> produtospedido = new List<ProdutoPedido>(a.produtospedido.Count); foreach (ProdutoPedidoWS item in a.produtospedido) { produtospedido.Add(new ProdutoPedido() { Id = item.Id, IdPedido = item.IdPedido, IdProduto = item.IdProduto, Valor = item.Valor, Quantidade = item.Quantidade, QuantidadeEntregue = item.QuantidadeEntregue }); } BancoDeDados.Atualiza<ProdutoPedido>(produtospedido); #endregion #region Receber List<Receber> receber = new List<Receber>(a.receber.Count); foreach (ReceberWS item in a.receber) { receber.Add(new Receber() { Id = item.Id, IdPedido = item.IdPedido, Ordem = item.Ordem, Valor = item.Valor, Vencimento = item.Vencimento, Pagamento = item.Pagamento }); } BancoDeDados.Atualiza<Receber>(receber); #endregion #region Anotacao List<Anotacao> anotacoes = new List<Anotacao>(a.anotacoes.Count); foreach (AnotacaoWS item in a.anotacoes) { anotacoes.Add(new Anotacao() { Id = item.Id, IdPedido = item.IdPedido, Data = item.Data, DataUltimaAlteracao = item.DataUltimaAlteracao, Texto = item.Texto }); } BancoDeDados.Atualiza<Anotacao>(anotacoes); #endregion #region Vendedor List<Vendedor> vendedores = new List<Vendedor>(a.vendedores.Count); foreach (VendedorWS item in a.vendedores) { vendedores.Add(new Vendedor() { Id = item.Id, Nome = item.Nome }); } BancoDeDados.Atualiza<Vendedor>(vendedores); #endregion if (a.maxIdAnotacao != null || a.maxIdCliente != null || a.maxIdPedido != null || a.maxIdProdutoPedido != null || a.maxIdReceber != null) { Id id = new Id() { Anotacao = a.maxIdAnotacao ?? 0, Cliente = a.maxIdCliente ?? 0, Pedido = a.maxIdPedido ?? 0, ProdutoPedido = a.maxIdProdutoPedido ?? 0, Receber = a.maxIdReceber ?? 0 }; BancoDeDados.DeleteAll<Id>(); BancoDeDados.Insert<Id>(id); } Sinc s = new Sinc(); List<Sinc> ls = BancoDeDados.Query<Sinc>("select * from Sinc"); if (ls.Count > 0) s.UltimaSinc = a.dtAtualizado.Ticks > ls[0].UltimaSinc ? a.dtAtualizado.Ticks : ls[0].UltimaSinc; else s.UltimaSinc = a.dtAtualizado.Ticks; s.IdCelular = a.idCelular; BancoDeDados.DeleteAll<Sinc>(); BancoDeDados.Insert<Sinc>(s); BancoDeDados.CommitTransaction(); erro = false; } else { erro = true; } } catch (Exception) { erro = true; BancoDeDados.RollbackTransaction(); } concluiu = true; }
void SincronizarCompleted(object sender, SincronizarCompletedEventArgs e) { try { if (e.Result != null) { Atualizacao a = e.Result; BancoDeDados.BeginTransaction(); BancoDeDados.DeleteAll <Log>(); #region Cliente List <Cliente> clientes = new List <Cliente>(a.clientes.Count); foreach (ClienteWS item in a.clientes) { clientes.Add(new Cliente() { Id = item.Id, Nome = item.Nome, Cpf = item.Cpf, Rua = item.Rua, Numero = item.Numero, Bairro = item.Bairro, Cidade = item.Cidade, Uf = item.Uf, Cep = item.Cep, Complemento = item.Complemento, Telefone = item.Telefone, Email = item.Email, Ativo = item.Ativo }); } BancoDeDados.Atualiza <Cliente>(clientes); #endregion #region Produto List <Produto> produtos = new List <Produto>(a.produtos.Count); foreach (ProdutoWS item in a.produtos) { produtos.Add(new Produto() { Id = item.Id, Nome = item.Nome, Estoque = item.Estoque, Valor = item.Valor, Ativo = item.Ativo }); } BancoDeDados.Atualiza <Produto>(produtos); #endregion #region Pedido List <Pedido> pedidos = new List <Pedido>(a.pedidos.Count); foreach (PedidoWS item in a.pedidos) { pedidos.Add(new Pedido() { Id = item.Id, IdCliente = item.IdCliente, IdVendedor = item.IdVendedor, Valor = item.Valor, DataEmissao = item.DataEmissao, DataPagamento = item.DataPagamento, Observacoes = item.Observacoes }); } BancoDeDados.Atualiza <Pedido>(pedidos); #endregion #region Produtos Pedido List <ProdutoPedido> produtospedido = new List <ProdutoPedido>(a.produtospedido.Count); foreach (ProdutoPedidoWS item in a.produtospedido) { produtospedido.Add(new ProdutoPedido() { Id = item.Id, IdPedido = item.IdPedido, IdProduto = item.IdProduto, Valor = item.Valor, Quantidade = item.Quantidade, QuantidadeEntregue = item.QuantidadeEntregue }); } BancoDeDados.Atualiza <ProdutoPedido>(produtospedido); #endregion #region Receber List <Receber> receber = new List <Receber>(a.receber.Count); foreach (ReceberWS item in a.receber) { receber.Add(new Receber() { Id = item.Id, IdPedido = item.IdPedido, Ordem = item.Ordem, Valor = item.Valor, Vencimento = item.Vencimento, Pagamento = item.Pagamento }); } BancoDeDados.Atualiza <Receber>(receber); #endregion #region Anotacao List <Anotacao> anotacoes = new List <Anotacao>(a.anotacoes.Count); foreach (AnotacaoWS item in a.anotacoes) { anotacoes.Add(new Anotacao() { Id = item.Id, IdPedido = item.IdPedido, Data = item.Data, DataUltimaAlteracao = item.DataUltimaAlteracao, Texto = item.Texto }); } BancoDeDados.Atualiza <Anotacao>(anotacoes); #endregion #region Vendedor List <Vendedor> vendedores = new List <Vendedor>(a.vendedores.Count); foreach (VendedorWS item in a.vendedores) { vendedores.Add(new Vendedor() { Id = item.Id, Nome = item.Nome }); } BancoDeDados.Atualiza <Vendedor>(vendedores); #endregion if (a.maxIdAnotacao != null || a.maxIdCliente != null || a.maxIdPedido != null || a.maxIdProdutoPedido != null || a.maxIdReceber != null) { Id id = new Id() { Anotacao = a.maxIdAnotacao ?? 0, Cliente = a.maxIdCliente ?? 0, Pedido = a.maxIdPedido ?? 0, ProdutoPedido = a.maxIdProdutoPedido ?? 0, Receber = a.maxIdReceber ?? 0 }; BancoDeDados.DeleteAll <Id>(); BancoDeDados.Insert <Id>(id); } Sinc s = new Sinc(); List <Sinc> ls = BancoDeDados.Query <Sinc>("select * from Sinc"); if (ls.Count > 0) { s.UltimaSinc = a.dtAtualizado.Ticks > ls[0].UltimaSinc ? a.dtAtualizado.Ticks : ls[0].UltimaSinc; } else { s.UltimaSinc = a.dtAtualizado.Ticks; } s.IdCelular = a.idCelular; BancoDeDados.DeleteAll <Sinc>(); BancoDeDados.Insert <Sinc>(s); BancoDeDados.CommitTransaction(); erro = false; } else { erro = true; } } catch (Exception) { erro = true; BancoDeDados.RollbackTransaction(); } concluiu = true; }