static async Task GravarNoBancoAsync() { var parametros = LerParametros.LerArquivo(); try { GravaLog.Gravar("###########Inicido da importação###########", false, true); var conexao = new ConexaoBancoDeDados(); GerenciadorColaboradores.LimparTabela(conexao); var gerenciadorColaboradores = new GerenciadorColaboradores(); var colaboradores = await Requisicao.GetColaboradoresAsync(parametros); if (parametros.manterIdentificadorDoSistema == true) { GerenciadorColaboradores.ComparaColaboradores(colaboradores, conexao); } GravaLog.Gravar(colaboradores.Count + " colaboradores lidos", false, true); gerenciadorColaboradores.Salvar(colaboradores, conexao, parametros); GravaLog.Gravar("###########Fim da importação###########", false, true); } catch (Exception ex) { GravaLog.Gravar(ex.Message, true, parametros.LogAtivo); } }
public List <Batida> BuscarBatidas() //busca as batidas na tabela vw_acessos (essa tabela foi modificada para atender esse cliente) { var ultimoRegistro = LerParametros.LerArquivo().UltimoRegistro; //chama metodo que lê o valor salvo no arquivo ultimoLido.txt var conexao = new ConexaoBancoDeDados(); var datatable = conexao.SelectBatidas($"SELECT concat (DATEPART(YEAR, data), '-', DATEPART(MONTH, data),'-', DATEPART(day, data)) as data, hora, tipo_acessos,equipamento_descricao, id_legado_mobuss, id, negado from vw_acessos_mobuss where id > {ultimoRegistro} order by id"); return(ConverterBatidas(datatable)); }
public static void ComparaColaboradores(List <Colaborador> colaboradores, ConexaoBancoDeDados conexao) /*comparar o filtro3 (id_legado_mobuss) com o campo Idolaborador(id recebido do mobuss) se for igual, * atualizar a objeto colaborado com o ID que ja existe no banco de dados do acesso, assim os numeros identificador * ja ajustado não são perdidos*/ { var pessoas = LerPessoasDoBanco(conexao);//recebe o datatable com as pessoas já cadastrada no banco do acessonet foreach (var colaborador in colaboradores) { foreach (DataRow linha in pessoas.Rows) { if (linha["id_legado_mobuss"].ToString() == colaborador.IdColaborador) { colaborador.N_identificador = linha["n_identificador"].ToString(); } } } }
//public void Salvar(List<Colaborador> colaboradores, string cnpj, ConexaoBancoDeDados conexao, bool logAtivo)//monta string para insert de pessoas public void Salvar(List <Colaborador> colaboradores, ConexaoBancoDeDados conexao, Parametros parametros) { var ColaboradoresFiltrados = LimpaColaborador(colaboradores); foreach (var colaborador in ColaboradoresFiltrados) { bool isError = false; try { { string insert = $" INSERT INTO integracao_externa " + $"(n_identificador, n_folha ,rg ,cpf,nome ,empresa_cnpj ,estado ,classificacao, email, filtro3, filtro1, filtro2, obs) " + $"VALUES ('{colaborador.N_identificador}','{colaborador.IdColaborador}'," + $"'{colaborador.NumeroRG}','{colaborador.NumeroCPF}','{colaborador.NomeColaborador}'," + $"'{parametros.Cnpj}','{colaborador.ValorSituacao}','Colaborador','{colaborador.Email}', '{colaborador.IdColaborador}'" + $",'{colaborador.Empreiteira}','{colaborador.Funcao}','{colaborador.N_provisorio}')"; conexao.ExecutarComando(insert); } } catch (SqlException ex) { for (int i = 0; i < ex.Errors.Count; i++) { var log = (@"Index #" + i + "\n" + "Message: " + ex.Errors[i].Message + "\n" + "colaborador: " + colaborador.NomeColaborador + "\n"); GravaLog.Gravar("Houve um erro para ao salvar colaboradores, verifique o log de erros!", false, parametros.LogAtivo); GravaLog.Gravar(log, true, parametros.LogAtivo); } isError = true; } if (isError) { continue; } } AjustaProvisorio(conexao); }
static DataTable LerPessoasDoBanco(ConexaoBancoDeDados conexao)//busca pessoas do banco e armazena num datatable { var datatable = conexao.SelectBatidas($"select n_identificador, n_folha, f.descricao as id_legado_mobuss from pessoas p inner join filtro3 f on f.id = p.filtro3_id"); return(datatable); }
public static void AjustaProvisorio(ConexaoBancoDeDados conexao)//Limpa tabela de integração { Thread.Sleep(120000); conexao.ExecutarComando($"update pessoas set n_provisorio = obs"); }
public static void LimparTabela(ConexaoBancoDeDados conexao)//Limpa tabela de integração { conexao.ExecutarComando($"delete integracao_externa"); }