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 } } }
public static void GravarBatidasEnviadas(Batida batida) { var a = DateTime.Now; string path = System.AppDomain.CurrentDomain.BaseDirectory.ToString(); using (StreamWriter arquivoBatidas = new StreamWriter(path + @"\\Batidas\\" + a.Day + "-" + a.Month + "-" + a.Year + ".txt", true)) { string JSONString = string.Empty; JSONString = JsonConvert.SerializeObject(batida); arquivoBatidas.WriteLine(JSONString); } }