예제 #1
0
        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
                }
            }
        }
예제 #2
0
        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);
            }
        }