public static async Task <bool> PostBatidasAsync(Parametros parametros, Batida batida) { using (var client = new HttpClient()) { try { var batidaSerial = JsonConvert.SerializeObject(batida, Formatting.None); batidaSerial = "[" + batidaSerial + "]"; client.BaseAddress = new Uri("https://www.mobuss.com.br/ccweb/rest/v1/catraca/"); client.DefaultRequestHeaders .Accept .Add(new MediaTypeWithQualityHeaderValue("application/json")); //ACCEPT header client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", parametros.TokenBatidas); HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "incluirRegistroAcesso") { Content = new StringContent(batidaSerial, System.Text.Encoding.UTF8, "application/json") //CONTENT-TYPE header }; var response = await client.SendAsync(request); if (response.IsSuccessStatusCode) { var result = await response.Content.ReadAsStringAsync();//guarda o retorno da requisição var jsonObject = (JObject)JsonConvert.DeserializeObject(result); var status = jsonObject["status"].ToString(); var mensagem = jsonObject["mensagem"].ToString(); if (status == "400") { GravaLog.Gravar("Houve um erro para enviar batidas para a API, verifique o log de erros!", false, parametros.LogAtivo); GravaLog.Gravar(jsonObject.ToString(), true, parametros.LogAtivo); return(true); //houve um erro tratado, provalemente batida duplicada } else { GravaLog.Gravar("iD Acesso: " + batida.idLegado + " - " + "Id ColaboradorMobuss: " + batida.idColaborador + ": " + mensagem, false, parametros.LogAtivo); return(true); //não houve erro } } else { GravaLog.Gravar("Houve um erro para enviar batidas para a API, verifique o log de erros!", false, parametros.LogAtivo); GravaLog.Gravar(response.ReasonPhrase, true, parametros.LogAtivo); return(false); //houve erro } } catch (Exception e) { GravaLog.Gravar("Houve um erro para enviar batidas para a API, verifique o log de erros!", false, parametros.LogAtivo); GravaLog.Gravar(e.ToString(), true, parametros.LogAtivo); return(false); //houve erro } } }
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 static async Task <List <Colaborador> > GetColaboradoresAsync(Parametros paramentros) { using (var client = new HttpClient()) { try { client.BaseAddress = new Uri("https://www.mobuss.com.br/ccweb/rest/v1/seguranca/"); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); client.DefaultRequestHeaders.Add("companyID", paramentros.CompanyId); client.DefaultRequestHeaders.Add("idObra", paramentros.ObraId); client.DefaultRequestHeaders.Add("token", paramentros.Token); client.DefaultRequestHeaders.Add("verificarRegistroTrabalhista", paramentros.verificarRegistroTrabalhista.ToString()); client.DefaultRequestHeaders.Add("verificarTreinamento", paramentros.verificarTreinamento.ToString()); client.DefaultRequestHeaders.Add("verificarEPI", paramentros.verificarEPI.ToString()); var response = await client.PostAsJsonAsync("consultarRegularidade", "colaboradores"); if (response.IsSuccessStatusCode) { var result = await response.Content.ReadAsStringAsync(); var jsonObject = (JObject)JsonConvert.DeserializeObject(result); var status = jsonObject["status"].ToString(); if (status == "ERRO") { GravaLog.Gravar("Houve um erro para buscar colaboradores na API, verifique o log de erros!", false, paramentros.LogAtivo); GravaLog.Gravar(jsonObject.ToString(), true, paramentros.LogAtivo); } else { var a = jsonObject["colaboradores"].ToObject <List <Colaborador> >(); return(a); //return jsonObject["colaboradores"].ToObject<List<Colaborador>>(); } } else { GravaLog.Gravar("Houve um erro para buscar colaboradores na API, verifique o log de erros!", false, paramentros.LogAtivo); GravaLog.Gravar(response.ReasonPhrase, true, paramentros.LogAtivo); } return(new List <Colaborador>()); } catch (Exception e) { GravaLog.Gravar("Houve um erro para buscar colaboradores na API, verifique o log de erros!", false, paramentros.LogAtivo); GravaLog.Gravar(e.ToString(), true, paramentros.LogAtivo); return(new List <Colaborador>()); } } }
public static Parametros LerArquivo()//Le e retonar todos os maramentro no json PARAM.JSON, localizado na pasta do executavel { // Debugger.Launch(); try { var caminho = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location); using (StreamReader file = File.OpenText(caminho + @"\param.json")) using (JsonTextReader reader = new JsonTextReader(file)) { JObject o2 = (JObject)JToken.ReadFrom(reader); var paramentros = JsonConvert.DeserializeObject <Parametros>(o2.ToString()); paramentros.UltimoRegistro = System.IO.File.ReadAllText(caminho + @"\ultimoLido.txt"); if (string.IsNullOrEmpty(paramentros.UltimoRegistro))//se o arquivo estiver em branco, seta ultimo lido = zero { paramentros.UltimoRegistro = "0"; } return(paramentros); } } catch (FileNotFoundException e) { GravaLog.Gravar($"Houve um erro ao ler o arquivo PARAM.JSON, verifique o loga erros!", false, true); GravaLog.Gravar($"The file was not found: '{e}'", true, true); Console.WriteLine($"The file was not found: '{e}'"); Console.WriteLine(); } catch (DirectoryNotFoundException e) { GravaLog.Gravar($"Houve um erro ao ler o arquivo PARAM.JSON, verifique o loga erros!", false, true); GravaLog.Gravar($"The directory was not found: '{e}'", true, true); Console.WriteLine($"The directory was not found: '{e}'"); Console.WriteLine(); } catch (IOException e) { GravaLog.Gravar($"Houve um erro ao ler o arquivo PARAM.JSON, verifique o loga erros!", false, true); GravaLog.Gravar($"The file could not be opened: '{e}'", true, true); Console.WriteLine($"The file could not be opened: '{e}'"); Console.WriteLine(); } return(null); }
public static void AtualizarUltimaBatida(string ultimoLido) //atualizar arquivo ultimoLido.txt com o ultimo valor encontrado { if (string.IsNullOrWhiteSpace(ultimoLido)) { } else { try { string caminho = System.AppDomain.CurrentDomain.BaseDirectory.ToString(); using (System.IO.StreamWriter arquivo = new System.IO.StreamWriter(caminho + "ultimoLido.txt", false)) { arquivo.WriteLine(ultimoLido); } } catch (FileNotFoundException e) { GravaLog.Gravar($"Houve um erro ao ler o arquivo PARAM.JSON, verifique o loga erros!", false, true); GravaLog.Gravar($"The file was not found: '{e}'", true, true); Console.WriteLine($"The file was not found: '{e}'"); Console.WriteLine(); } catch (DirectoryNotFoundException e) { GravaLog.Gravar($"Houve um erro ao ler o arquivo PARAM.JSON, verifique o loga erros!", false, true); GravaLog.Gravar($"The directory was not found: '{e}'", true, true); Console.WriteLine($"The directory was not found: '{e}'"); Console.WriteLine(); } catch (IOException e) { GravaLog.Gravar($"Houve um erro ao ler o arquivo PARAM.JSON, verifique o loga erros!", false, true); GravaLog.Gravar($"The file could not be opened: '{e}'", true, true); Console.WriteLine($"The file could not be opened: '{e}'"); Console.WriteLine(); } } }
public List <Colaborador> LimpaColaborador(List <Colaborador> colaboradores) //remove colaboradores com Matricula em branco { List <Colaborador> ColaboradoresDescartados = new List <Colaborador>(); //lista de colaboradores descartados List <Colaborador> ColaboradoresFiltrados = new List <Colaborador>(); // lista de colaboradores que estão ok foreach (var colaborador in colaboradores) { bool isError = false; try { // IdColaborador é usado como folha if (string.IsNullOrEmpty(colaborador.IdColaborador)) //tem um cliente que usa matricula no lucar do IdColaborador como chave unica { ColaboradoresDescartados.Add(colaborador); } else { var nSemCaracteres = ApenasNumeros(colaborador.N_identificador);//Alguns clientes usar matricula outros numero identificador colaborador.N_identificador = nSemCaracteres[0]; colaborador.N_provisorio = nSemCaracteres[1]; ColaboradoresFiltrados.Add(colaborador); } } catch (Exception ex) { var log = (@"colaborador: " + colaborador.NomeColaborador + " " + ex.Message + "\n"); GravaLog.Gravar("Houve um erro para ao salvar colaboradores, verifique o log de erros!", false, true); GravaLog.Gravar(log, true, true); isError = true; } if (isError) { continue; } } //log de descartados foreach (var colaborador in ColaboradoresDescartados) { GravaLog.Gravar(colaborador.NomeColaborador + " não importado, NUMERO DE FOLHA NÃO PODE SER NULO", false, true); } return(ColaboradoresFiltrados); }
//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); }
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); } }