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 ConexaoBancoDeDados() // monta string para conexão { var paramentros = LerParametros.LerArquivo(); //chama o metodo que le o json localizado na pasta do sistema para recuperar os parametrode conexao m_stringConexao = @"server=" + paramentros.Servidor + ";Database=" + paramentros.Banco + ";integrated security = false" + ";user="******";Password="******";"; }
static List <Batida> ConverterBatidas(DataTable dt)//converte dataTable para objetos do tipo Batida { var paramentros = LerParametros.LerArquivo(); var convertedList = (from rw in dt.AsEnumerable() select new Batida() { dataAcesso = Convert.ToString(rw["data"]) + "T" + Convert.ToString(rw["hora"]) + ".218Z", flagEntrada = Convert.ToString(rw["tipo_acessos"]), idLocal = Convert.ToString(paramentros.IdLocal), idObra = Convert.ToString(paramentros.ObraId), idColaborador = Convert.ToString(rw["id_legado_mobuss"]), idLegado = Convert.ToString(rw["id"]) + "_" + paramentros.ObraId, //em alguns casos mais de uma obra aponta para o mesmo banco de dados do Mobuss (tokken de batidas), então são usados dois programinha de importação, cada uma apontado para um IDObra diferente, concatenando o IdObra evitamos o envio de ids duplicados entre as obras idAcesso = Convert.ToString(rw["id"]), flgBloqueado = Convert.ToBoolean(rw["negado"]) }).ToList(); return(convertedList); }
public static async System.Threading.Tasks.Task EnviarBatidasAsync() { var listaDeBatidas = new GerenciadorBatidas().BuscarBatidas(); var paramentros = LerParametros.LerArquivo(); if (listaDeBatidas.Count > 0)// se houver batidas para exportar { GravaLog.Gravar("###########Inicio da exportação de batidas###########", false, paramentros.LogAtivo); GravaLog.Gravar(listaDeBatidas.Count + " batida lidas", false, paramentros.LogAtivo); int index = 0; foreach (var batida in listaDeBatidas)// chama o metodo PostBatidasAsync para cadas batida existente { bool retornoRequisicao = await Requisicao.PostBatidasAsync(paramentros, listaDeBatidas[index]); if (retornoRequisicao == true) { string ultimoLido = listaDeBatidas[index].idAcesso; LerParametros.AtualizarUltimaBatida(ultimoLido); GravaLog.GravarBatidasEnviadas(batida); index++; } else { break;//não houve retorno da requisição, neste caso a tarefa é interrompida para que o ultimo registro lido seja integro } } GravaLog.Gravar("Fim da exportação de batidas", false, paramentros.LogAtivo); } else { GravaLog.Gravar("###########Inicio da exportação de batidas###########", false, paramentros.LogAtivo); GravaLog.Gravar("Não existem novas batidas para exportação", false, paramentros.LogAtivo); GravaLog.Gravar("Fim da exportação de batidas", false, paramentros.LogAtivo); } }