// Cadastra os produtos achados na API no Banco de Dados public void BuscaECadastraProduto(string Produto, int ProdutoId) { using (Contexto contexto = new Contexto()) { var DadosProduto = BuscarDadosProduto(Produto); // TODO: Verificar conexao de internet antes de se conectar a internet // Busca o ultimo valor do EURO em relação ao REAL float ValorEuro = moedaController.BuscarMoedaPorId(1).Valor; // Pra cada produto existente no resultado, cadastra o seu valor para o respectivo mercado foreach (dynamic d in DadosProduto) { // Caso o valor de venda do produto seja zero, é inútil pra nós, não cadastra if (!d.ProductUpdates[0].SalePrice.Equals(0)) { float PrecoReais = d.ProductUpdates[0].SalePrice * ValorEuro; string Mercado = d.ProductUpdates[0].Provider.Name; MercadoProduto mercadoProduto = new MercadoProduto(); mercadoProduto.Preco = PrecoReais; mercadoProduto.ProdutoId = ProdutoId; mercadoProduto.DataAtualizacao = Util.BuscarDataHoraAtual(); // Achar chave estrangeira do mercado baseada no nome switch (Mercado) { case "Jumbo": mercadoProduto.MercadoId = 1; break; case "Continente": mercadoProduto.MercadoId = 2; break; case "Intermarche": mercadoProduto.MercadoId = 3; break; case "Pingo": mercadoProduto.MercadoId = 4; break; } contexto.MercadoProduto.Add(mercadoProduto); } // Salva dados no banco depois de achar todos os produtos com valor contexto.SaveChanges(); } } }
// Busca valor da moeda e cadastra no banco public void AtualizaPrecoMoeda(string Nome) { // Instancia nova moeda Moeda moeda = new Moeda(); moeda.NomeMoeda = Nome; // Busca todas as moedas ICollection <Moeda> moedas = RetornarTodos(); using (Contexto contexto = new Contexto()) { switch (moeda.NomeMoeda) { case "Euro": // Se achar alguma moeda if (moedas.Count > 0) { foreach (Moeda m in moedas) { // Se achar alguma moeda "Euro" cadastrada no Banco if (m.NomeMoeda == "Euro") { // Atualiza o item já cadastrado m.Valor = Util.BuscaValorEuro(); m.DataAtualizacao = Util.BuscarDataHoraAtual(); contexto.Entry(m).State = System.Data.Entity.EntityState.Modified; } } } // Se não achar, cadastra uma moeda nova else { moeda.Valor = Util.BuscaValorEuro(); moeda.DataAtualizacao = Util.BuscarDataHoraAtual(); contexto.Moeda.Add(moeda); } break; } contexto.SaveChanges(); } }