Esempio n. 1
0
        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));
            }
        }
Esempio n. 2
0
        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)));
            }
        }
Esempio n. 3
0
        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);
        }