public async Task <IActionResult> Post([FromBody] Abastecimento value) { HttpResponseMessage response = await SendAfericao(value); if (response == null || !response.IsSuccessStatusCode) { if (AbastecimentoDAO.PersistAfericao(value) == null) { SyncAfericao(); return(StatusCode(201)); } else { Util.WriteLog.Write("persistiu aferição POST", Util.ENUM.LOG_FILENAME_SYSTEM); return(StatusCode(500)); } } else { return(StatusCode(201)); } }
public async Task <string> Get(int id) { try { string abastcimentoString = await GetDadosApi(Util.ENUM.END_PONINT_ABASTECIMENTOS + id); CultureInfo provider = CultureInfo.InvariantCulture; ListaAbastecimentos abastecimentos = JsonConvert.DeserializeObject <ListaAbastecimentos>(abastcimentoString, new IsoDateTimeConverter { DateTimeFormat = "dd/MM/yyyy HH:mm:ss" }); List <Abastecimento> SyncList = DataBase.AbastecimentoDAO.Sync(abastecimentos.Abastecimentos); if (SyncList != null) { return(JsonConvert.SerializeObject(SyncList)); } else { Util.WriteLog.Write("ERRO AO SINCRONIZAR LISTA - NENHUM REGISTRO NO BANCO LOCAL", Util.ENUM.LOG_FILENAME_SYSTEM); return(null); } }catch (System.ArgumentNullException ex) { Util.WriteLog.Write("" + ex, Util.ENUM.LOG_FILENAME_SYSTEM); string query = "SELECT * FROM abastecimento WHERE idBico = " + id; return(JsonConvert.SerializeObject(AbastecimentoDAO.GetData(query))); }catch (HttpRequestException ex) { Util.WriteLog.Write("" + ex, Util.ENUM.LOG_FILENEMA_HTTP); string query = "SELECT * FROM abastecimento WHERE idBico = " + id; return(JsonConvert.SerializeObject(AbastecimentoDAO.GetData(query))); } }
public void SyncAfericao() { string query = "SELECT * FROM abastecimento " + "JOIN afericao " + "ON abastecimento.id = afericao.id_abastecimento " + "AND afericao.processado = 0"; List <Abastecimento> afericoes = AbastecimentoDAO.GetData(query); CancellationTokenSource cancel = new CancellationTokenSource(); Task.Run(async() => { Boolean conected = true; while (conected) { Util.WriteLog.Write("afericao serv", Util.ENUM.LOG_FILENAME_SYSTEM); // Funções do seu aplicativo vão aqui int countStatus = 0; foreach (Abastecimento a in afericoes) { HttpResponseMessage res = await SendAfericao(a); if (res != null && res.IsSuccessStatusCode) { AbastecimentoDAO.UpdateAfericao(a); Util.WriteLog.Write("update afericao", Util.ENUM.LOG_FILENAME_SYSTEM); countStatus++; } } if (countStatus == afericoes.Count()) { conected = false; } Thread.Sleep(TimeSpan.FromSeconds(5)); } }, cancel.Token); }