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; }