Пример #1
0
        public async Task ExecuteProcess()
        {
            Stopwatch stopwatch = new Stopwatch();

            stopwatch.Start();

            try
            {
                logger.Info($"Bot iniciou processo");
                List <Call> calls = await GegtCallsToTrackerAsync().ConfigureAwait(false);

                ApiTracelibity apiTracelibity = new ApiTracelibity();
                ISession       session        = NHibernateHelper.OpenSession();
                Tracking       tracking       = new Tracking(session);
                foreach (Call call in calls)
                {
                    await this.ManageCall(call, tracking, apiTracelibity);
                }
                session.Close();
            }
            catch (Exception e)
            {
                logger.Error("Erro na execução do processo", e);
            }
            finally
            {
                stopwatch.Stop();
                logger.Info($"Bot finalizado em {stopwatch.ElapsedMilliseconds} ms");
                logger.Info("===============================================================================");
            }
        }
Пример #2
0
 private async Task ManageCall(Call call, Tracking tracking, ApiTracelibity apiTracelibity)
 {
     try
     {
         tracking.RelatesCallTrackEch(call);
         await MarkCallAsUsedAsync(call, apiTracelibity).ConfigureAwait(false);
     }
     catch (Exception e)
     {
         logger.Error("Erro ao gerenciar a chamada", e);
     }
 }
Пример #3
0
        private async Task <Boolean> MarkCallAsUsedAsync(Call call, ApiTracelibity apiTracelibity)
        {
            Boolean isMark = false;

            if (call.IsRecordedECH || call.IsExceededLimitAttemps)
            {
                ResponseApi <Call> response = await apiTracelibity.AlterCallToUsedAsync(call)
                                              .ConfigureAwait(false);

                logger.Info($"Resposta API: {response}");
                isMark = true;
            }
            else
            {
                logger.Info($"Call não foi marcada como utilizada {call}");
            }

            return(isMark);
        }
Пример #4
0
        private async Task <List <Call> > GegtCallsToTrackerAsync()
        {
            try
            {
                Stopwatch stopwatch = new Stopwatch();
                stopwatch.Start();

                ApiTracelibity             consultaApi = new ApiTracelibity();
                ResponseApi <List <Call> > responseApi = await consultaApi.GetListCallAsync()
                                                         .ConfigureAwait(false);

                stopwatch.Stop();
                logger.Info($"API enviou {responseApi.Data.Count} objetos com a mensagem: {responseApi.Message}, " +
                            $"em {stopwatch.ElapsedMilliseconds} ms");
                return(responseApi.Data);
            }
            catch (Exception e)
            {
                logger.Error("Não foi possível obter os dados da API.", e);
                throw e;
            }
        }