public void Exportar(InfoPedido[] pedidos) { Email[] emails = null; try { using (var scope = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 0, 55))) { emails = PedidoDAL.Atualiza(pedidos); scope.Complete(); } } catch (Exception exception) { DAL.LogErro.Registrar(exception.Message); //throw; } if (emails != null) { foreach (var email in emails) { EmailDAL.Enviar(email); } } Atualizacao a = new Atualizacao(); //a.Executa(); }
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { Atualizacao atualizacao = new Atualizacao(); atualizacao.ShowDialog(); }
public string AtualizarVersao([FromBody] Atualizacao atualizacao) { return(new AtualizacaoRepository().AtualizarVersao(atualizacao)); }
void SincronizarCompleted(object sender, SincronizarCompletedEventArgs e) { try { if (e.Result != null) { Atualizacao atualizacao = e.Result; BancoDeDados.BeginTransaction(); BancoDeDados.DeleteAll <Log>(); #region Cliente List <Cliente> clientes = new List <Cliente>(atualizacao.clientes.Count); foreach (ClienteWS item in atualizacao.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>(atualizacao.produtos.Count); foreach (ProdutoWS item in atualizacao.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>(atualizacao.pedidos.Count); foreach (PedidoWS item in atualizacao.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>(atualizacao.produtospedido.Count); foreach (ProdutoPedidoWS item in atualizacao.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>(atualizacao.receber.Count); foreach (ReceberWS item in atualizacao.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>(atualizacao.anotacoes.Count); foreach (AnotacaoWS item in atualizacao.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>(atualizacao.vendedores.Count); foreach (VendedorWS item in atualizacao.vendedores) { vendedores.Add(new Vendedor() { Id = item.Id, Nome = item.Nome }); } BancoDeDados.Atualiza <Vendedor>(vendedores); #endregion if (atualizacao.maxIdAnotacao != null || atualizacao.maxIdCliente != null || atualizacao.maxIdPedido != null || atualizacao.maxIdProdutoPedido != null || atualizacao.maxIdReceber != null) { Id id = new Id() { Anotacao = atualizacao.maxIdAnotacao ?? 0, Cliente = atualizacao.maxIdCliente ?? 0, Pedido = atualizacao.maxIdPedido ?? 0, ProdutoPedido = atualizacao.maxIdProdutoPedido ?? 0, Receber = atualizacao.maxIdReceber ?? 0 }; BancoDeDados.DeleteAll <Id>(); BancoDeDados.Insert <Id>(id); } Sinc sinc = new Sinc(); List <Sinc> ls = BancoDeDados.Query <Sinc>("select * from Sinc"); if (ls.Count > 0) { sinc.UltimaSinc = atualizacao.dtAtualizado.Ticks > ls[0].UltimaSinc ? atualizacao.dtAtualizado.Ticks : ls[0].UltimaSinc; } else { sinc.UltimaSinc = atualizacao.dtAtualizado.Ticks; } sinc.IdCelular = atualizacao.idCelular; BancoDeDados.DeleteAll <Sinc>(); BancoDeDados.Insert <Sinc>(sinc); BancoDeDados.CommitTransaction(); erro = false; } else { erro = true; } } catch (Exception) { erro = true; BancoDeDados.RollbackTransaction(); } concluiu = true; }
public Atualizacao Sincronizar(List<string> atualizacoes, DateTime ultimaSincronizacao, string identificacao) { BancoDeDados bd = new BancoDeDados(); try { if (bd.BeginTransaction()) { foreach (string sql in atualizacoes) { NpgsqlCommand comando = new NpgsqlCommand(sql); bd.NonQuery(comando); } Atualizacao atualizacao = new Atualizacao(); bool buscarIds = false; #region Identificacao NpgsqlCommand command = new NpgsqlCommand("SELECT id FROM celular WHERE identificacao = '" + identificacao + "'"); DataSet ds = bd.Query(command); if (ds == null) return null; DataTableReader dtr = ds.CreateDataReader(); if (dtr.Read()) { atualizacao.idCelular = dtr.GetInt32(0); if (ultimaSincronizacao.Ticks == 0) buscarIds = true; } else { command = new NpgsqlCommand("INSERT INTO celular(identificacao) VALUES ('" + identificacao + "')"); bd.NonQuery(command); command = new NpgsqlCommand("SELECT id FROM celular WHERE identificacao = '" + identificacao + "'"); ds = bd.Query(command); if (ds == null) return null; dtr = ds.CreateDataReader(); dtr.Read(); atualizacao.idCelular = dtr.GetInt32(0); } #endregion #region Cliente command = new NpgsqlCommand(@"SELECT id, nome, cpf, rua, numero, bairro, cidade, uf, cep, complemento, telefone, email, ativo, alteracao FROM cliente WHERE alteracao > @alt ORDER BY Id"); command.Parameters.Add("alt", NpgsqlDbType.Timestamp).Value = ultimaSincronizacao; ds = bd.Query(command); if (ds == null) return null; dtr = ds.CreateDataReader(); List<ClienteWS> clientes = new List<ClienteWS>(); while (dtr.Read()) { clientes.Add(new ClienteWS() { Id = dtr.GetString(0), Nome = dtr.GetString(1), Cpf = dtr.GetString(2), Rua = dtr.GetString(3), Numero = dtr.GetString(4), Bairro = dtr.GetString(5), Cidade = dtr.GetString(6), Uf = dtr.GetString(7), Cep = (dtr.IsDBNull(8) || string.IsNullOrWhiteSpace(dtr.GetString(8))) ? null : dtr.GetString(8), Complemento = (dtr.IsDBNull(9) || string.IsNullOrWhiteSpace(dtr.GetString(9))) ? null : dtr.GetString(9), Telefone = (dtr.IsDBNull(10) || string.IsNullOrWhiteSpace(dtr.GetString(10))) ? null : dtr.GetString(10), Email = (dtr.IsDBNull(11) || string.IsNullOrWhiteSpace(dtr.GetString(11))) ? null : dtr.GetString(11), Ativo = dtr.GetBoolean(12) }); if (atualizacao.dtAtualizado == null || atualizacao.dtAtualizado < dtr.GetDateTime(13)) { atualizacao.dtAtualizado = dtr.GetDateTime(13); } if (buscarIds) { string[] aux = dtr.GetString(0).Split('/'); int id = Convert.ToInt32(aux[1]); if (atualizacao.idCelular == Convert.ToInt32(aux[0]) && (atualizacao.maxIdCliente == null || atualizacao.maxIdCliente < id)) atualizacao.maxIdCliente = id; } } atualizacao.clientes = clientes; #endregion #region Produto command = new NpgsqlCommand(@"SELECT id, nome, estoque, valor, ativo, alteracao FROM produto WHERE alteracao > @alt ORDER BY Id"); command.Parameters.Add("alt", NpgsqlDbType.Timestamp).Value = ultimaSincronizacao; ds = bd.Query(command); if (ds == null) return null; dtr = ds.CreateDataReader(); List<ProdutoWS> produtos = new List<ProdutoWS>(); while (dtr.Read()) { produtos.Add(new ProdutoWS() { Id = dtr.GetInt32(0), Nome = dtr.GetString(1), Estoque = dtr.GetDecimal(2), Valor = dtr.GetDecimal(3), Ativo = dtr.GetBoolean(4) }); if (atualizacao.dtAtualizado == null || atualizacao.dtAtualizado < dtr.GetDateTime(5)) { atualizacao.dtAtualizado = dtr.GetDateTime(5); } } atualizacao.produtos = produtos; #endregion #region Pedido command = new NpgsqlCommand(@"SELECT id, id_cliente, id_vendedor, valor, data_emissao, data_pagamento, observacoes, alteracao FROM pedido WHERE alteracao > @alt ORDER BY Id"); command.Parameters.Add("alt", NpgsqlDbType.Timestamp).Value = ultimaSincronizacao; ds = bd.Query(command); if (ds == null) return null; dtr = ds.CreateDataReader(); List<PedidoWS> pedidos = new List<PedidoWS>(); while (dtr.Read()) { pedidos.Add(new PedidoWS() { Id = dtr.GetString(0), IdCliente = dtr.GetString(1), IdVendedor = dtr.GetInt32(2), Valor = dtr.GetDecimal(3), DataEmissao = dtr.GetDateTime(4), DataPagamento = dtr.GetDateTime(5), Observacoes = dtr.GetString(6) }); if (atualizacao.dtAtualizado == null || atualizacao.dtAtualizado < dtr.GetDateTime(7)) { atualizacao.dtAtualizado = dtr.GetDateTime(7); } if (buscarIds) { string[] aux = dtr.GetString(0).Split('/'); int id = Convert.ToInt32(aux[1]); if (atualizacao.idCelular == Convert.ToInt32(aux[0]) && (atualizacao.maxIdPedido == null || atualizacao.maxIdPedido < id)) atualizacao.maxIdPedido = id; } } atualizacao.pedidos = pedidos; #endregion #region Produtos Pedido command = new NpgsqlCommand(@"SELECT id, id_pedido, id_produto, valor, quantidade, quantidade_entregue, alteracao FROM produto_pedido WHERE alteracao > @alt ORDER BY Id"); command.Parameters.Add("alt", NpgsqlDbType.Timestamp).Value = ultimaSincronizacao; ds = bd.Query(command); if (ds == null) return null; dtr = ds.CreateDataReader(); List<ProdutoPedidoWS> produtospedido = new List<ProdutoPedidoWS>(); while (dtr.Read()) { produtospedido.Add(new ProdutoPedidoWS() { Id = dtr.GetString(0), IdPedido = dtr.GetString(1), IdProduto = dtr.GetInt32(2), Valor = dtr.GetDecimal(3), Quantidade = dtr.GetDecimal(4), QuantidadeEntregue = dtr.GetDecimal(5) }); if (atualizacao.dtAtualizado == null || atualizacao.dtAtualizado < dtr.GetDateTime(6)) { atualizacao.dtAtualizado = dtr.GetDateTime(6); } if (buscarIds) { string[] aux = dtr.GetString(0).Split('/'); int id = Convert.ToInt32(aux[1]); if (atualizacao.idCelular == Convert.ToInt32(aux[0]) && (atualizacao.maxIdProdutoPedido == null || atualizacao.maxIdProdutoPedido < id)) atualizacao.maxIdProdutoPedido = id; } } atualizacao.produtospedido = produtospedido; #endregion #region Receber command = new NpgsqlCommand(@"SELECT id, id_pedido, ordem, valor, vencimento, pagamento, alteracao FROM receber WHERE alteracao > @alt ORDER BY Id"); command.Parameters.Add("alt", NpgsqlDbType.Timestamp).Value = ultimaSincronizacao; ds = bd.Query(command); if (ds == null) return null; dtr = ds.CreateDataReader(); List<ReceberWS> receber = new List<ReceberWS>(); while (dtr.Read()) { receber.Add(new ReceberWS() { Id = dtr.GetString(0), IdPedido = dtr.GetString(1), Ordem = dtr.GetInt32(2), Valor = dtr.GetDecimal(3), Vencimento = dtr.GetDateTime(4), Pagamento = dtr.GetDateTime(5), }); if (atualizacao.dtAtualizado == null || atualizacao.dtAtualizado < dtr.GetDateTime(6)) { atualizacao.dtAtualizado = dtr.GetDateTime(6); } if (buscarIds) { string[] aux = dtr.GetString(0).Split('/'); int id = Convert.ToInt32(aux[1]); if (atualizacao.idCelular == Convert.ToInt32(aux[0]) && (atualizacao.maxIdReceber == null || atualizacao.maxIdReceber < id)) atualizacao.maxIdReceber = id; } } atualizacao.receber = receber; #endregion #region Anotacao command = new NpgsqlCommand(@"SELECT id, id_pedido, data, data_ultima_alteracao, texto, alteracao FROM anotacao WHERE alteracao > @alt ORDER BY Id"); command.Parameters.Add("alt", NpgsqlDbType.Timestamp).Value = ultimaSincronizacao; ds = bd.Query(command); if (ds == null) return null; dtr = ds.CreateDataReader(); List<AnotacaoWS> anotacoes = new List<AnotacaoWS>(); while (dtr.Read()) { anotacoes.Add(new AnotacaoWS() { Id = dtr.GetString(0), IdPedido = dtr.GetString(1), Data = dtr.GetDateTime(2), DataUltimaAlteracao = dtr.GetDateTime(3), Texto = dtr.GetString(4) }); if (atualizacao.dtAtualizado == null || atualizacao.dtAtualizado < dtr.GetDateTime(5)) { atualizacao.dtAtualizado = dtr.GetDateTime(5); } if (buscarIds) { string[] aux = dtr.GetString(0).Split('/'); int id = Convert.ToInt32(aux[1]); if (atualizacao.idCelular == Convert.ToInt32(aux[0]) && (atualizacao.maxIdAnotacao == null || atualizacao.maxIdAnotacao < id)) atualizacao.maxIdAnotacao = id; } } atualizacao.anotacoes = anotacoes; #endregion #region Vendedor command = new NpgsqlCommand(@"SELECT id, nome, alteracao FROM vendedor WHERE alteracao > @alt ORDER BY Id"); command.Parameters.Add("alt", NpgsqlDbType.Timestamp).Value = ultimaSincronizacao; ds = bd.Query(command); if (ds == null) return null; dtr = ds.CreateDataReader(); List<VendedorWS> vendedores = new List<VendedorWS>(); while (dtr.Read()) { vendedores.Add(new VendedorWS() { Id = dtr.GetInt32(0), Nome = dtr.GetString(1) }); if (atualizacao.dtAtualizado == null || atualizacao.dtAtualizado < dtr.GetDateTime(2)) { atualizacao.dtAtualizado = dtr.GetDateTime(2); } } atualizacao.vendedores = vendedores; #endregion if (bd.CommitTransaction()) return atualizacao; else bd.RollbackTransaction(); } }catch(Exception) { bd.RollbackTransaction(); } return null; }