public static IActionResult Run(
     [HttpTrigger(AuthorizationLevel.Function, "get", Route = null)] HttpRequest req,
     ILogger log)
 {
     log.LogInformation("Function Cotacoes - HTTP GET");
     return(new OkObjectResult(CotacoesRepository.GetAll()));
 }
 public static IActionResult Run(
     [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = null)] HttpRequest req,
     ILogger log)
 {
     log.LogInformation("Function UltimasCotacoesDolar - HTTP GET");
     return(new OkObjectResult(CotacoesRepository.ListUltimasCotacoesDolar()));
 }
コード例 #3
0
        public static void Run([QueueTrigger("queue-cotacoes", Connection = "AzureWebJobsStorage")]string myQueueItem, ILogger log)
        {
           log.LogInformation($"CotacoesQueueTrigger - Dados: {myQueueItem}");

            Cotacao cotacao = null;
            try
            {
                cotacao = JsonSerializer.Deserialize<Cotacao>(myQueueItem,
                    new JsonSerializerOptions()
                    {
                        PropertyNameCaseInsensitive = true
                    });
            }
            catch
            {
                log.LogInformation($"CotacoesQueueTrigger - Erro durante a deserialização");
            }
            
            if (cotacao == null)
                return;

            var validationResult = new CotacaoValidator().Validate(cotacao);
            if (validationResult.IsValid)
            {
                log.LogInformation($"CotacoesQueueTrigger - Dados pós formatação: {JsonSerializer.Serialize(cotacao)}");
                CotacoesRepository.Save(cotacao);
                log.LogInformation("CotacoesQueueTrigger - Transação registrada com sucesso!");
            }
            else
            {
                log.LogInformation("CotacoesQueueTrigger - Dados inválidos para a Transação");
            }
        }
コード例 #4
0
 public Worker(ILogger <Worker> logger,
               IConfiguration configuration,
               CotacoesRepository repository)
 {
     _logger            = logger;
     _configuration     = configuration;
     _repository        = repository;
     _intervaloExecucao = Convert.ToInt32(
         configuration["IntervaloExecucao"]);
 }
コード例 #5
0
        public static void Run([CosmosDBTrigger(
                                    databaseName: "DBMoedas",
                                    collectionName: "Cotacoes",
                                    ConnectionStringSetting = "DBCotacoesConnectionString",
                                    CreateLeaseCollectionIfNotExists = true,
                                    LeaseCollectionName = "leases")] IReadOnlyList <Document> input, ILogger log)
        {
            if (input != null && input.Count > 0)
            {
                foreach (var doc in input)
                {
                    var document = CotacoesRepository.GetDocument(doc.Id);
                    log.LogInformation($"Dados: {JsonSerializer.Serialize(document)}");

                    if (document.id.StartsWith("USD"))
                    {
                        CotacoesRepository.SaveCotacaoDolar(document);
                        log.LogInformation("Cotação registrada com sucesso");
                    }
                }
            }
        }
コード例 #6
0
        static void Main(string[] args)
        {
            Console.WriteLine("Carregando configurações...");
            var builder = new ConfigurationBuilder()
                          .SetBasePath(Directory.GetCurrentDirectory())
                          .AddJsonFile($"appsettings.json");
            var configuration = builder.Build();

            DateTime dataHoraExtracao    = DateTime.Now;
            var      excelConfigurations = new ExcelConfigurations();

            new ConfigureFromConfigurationOptions <ExcelConfigurations>(
                configuration.GetSection("ExcelConfigurations"))
            .Configure(excelConfigurations);

            Console.WriteLine("Gerando o arquivo .xlsx (Excel) com as cotações...");

            string arquivoXlsx = ArquivoExcelCotacoes.GerarArquivo(
                excelConfigurations, dataHoraExtracao,
                CotacoesRepository.GetAll());

            Console.WriteLine($"O arquivo {arquivoXlsx} foi gerado com sucesso!");
        }
コード例 #7
0
 public ProcessarCotacao(CotacoesRepository repository)
 {
     _repository = repository;
 }
コード例 #8
0
 public Historico(CotacoesRepository repository)
 {
     _repository = repository;
 }