Esempio n. 1
0
        public async Task <IActionResult> Create([Bind("Data")] Cotacao.Models.Cotacao cotacao)
        {
            Models.Services.RequisicaoService requisicao = new Models.Services.RequisicaoService();

            DateTime dataT = cotacao.Data;

            requisicao.Dia = Convert.ToString(cotacao.Data.Day, 10);
            requisicao.Mes = Convert.ToString(cotacao.Data.Month, 10);
            requisicao.Ano = Convert.ToString(cotacao.Data.Year, 10);

            requisicao.VerificaFimSemana(cotacao.Data);

            cotacao.Data = dataT;

            requisicao.moeda = "USD";

            CotacaoService coletor = CotacaoService.Coletar(requisicao).Result;


            cotacao.MoedaOrigem  = "Dolar";
            cotacao.MoedaDestino = "Real";

            cotacao.ValorCompra = coletor.cotacaoCompra;
            cotacao.ValorVenda  = coletor.cotacaoVenda;


            if (!CotacaoExists(cotacao.Data))
            {
                if ((ModelState.IsValid) & (cotacao.ValorCompra != null))
                {
                    _context.Add(cotacao);
                    await _context.SaveChangesAsync();

                    return(RedirectToAction(nameof(Index)));
                }
                else
                {
                    return(View("errorData"));
                }
            }
            else
            {
                return(View("errorExist"));
            }

            return(View(cotacao));
        }
        public static async Task<CotacaoService> Coletar(Models.Services.RequisicaoService requisicao)
        {
            CotacaoService coletor = new CotacaoService();
            string errorString;

            using (HttpClient client = new HttpClient())
            {
                var content = new HttpRequestMessage(HttpMethod.Get, requisicao.ObterUrl());

                HttpResponseMessage response = await client.SendAsync(content);

                Console.WriteLine(requisicao.ObterUrl());



                if (response.IsSuccessStatusCode)
                {
                    await response.Content.ReadFromJsonAsync<CotacaoService>();
                    string responseBody = await response.Content.ReadAsStringAsync();

                    root raiz = JsonConvert.DeserializeObject<root>(responseBody);
                    
                    errorString = null;

                    if (raiz.Results.Count > 0)
                    {
                        int index = raiz.Results.Count - 1;
                        coletor.cotacaoCompra = raiz.Results[index].cotacaoCompra;
                        coletor.cotacaoVenda = raiz.Results[index].cotacaoVenda;
                        coletor.dataHoraCotacao = raiz.Results[index].dataHoraCotacao;

                    }



                    Console.WriteLine(responseBody);
                    Console.WriteLine(coletor.cotacaoCompra);
                }
                else
                {
                    
                    errorString = $"algo deu errado: {response.ReasonPhrase}";
                }
            }

            return coletor;
        }