public Alimento ObterAlimento(int idAlimento) { Alimento a = null; using (var sqlCon = new SqlConnection(DAO.CONECTION_STRING)) { string txtCmd = "SELECT * FROM Alimento WHERE id = @id AND removido = 0"; sqlCon.Open(); using (var cmd = new SqlCommand(txtCmd, sqlCon)) { cmd.Parameters.Add("@id", SqlDbType.Int); cmd.Parameters["@id"].Value = idAlimento; using (var reader = cmd.ExecuteReader()) { bool encontrado = reader.Read(); if (encontrado) { string designacao = reader["designacao"].ToString(); float? preco = (reader["preco"] == DBNull.Value) ? null : (float?)Convert.ToDouble(reader["preco"]); byte[] foto = (reader["foto"] == DBNull.Value) ? null : (byte[])reader["foto"]; int idEstabelecimento = Convert.ToInt32(reader["id_estabelecimento"]); // fecha o reader associado à sqlCon para que IngredienteDAO possa associar-lhe outro reader. reader.Close(); ISet <string> ings = ingredientes.ObterIngredientes(idAlimento, sqlCon); a = new Alimento(idAlimento, designacao, ings, idEstabelecimento, preco, foto); a.AdicionarClassificacoes(classificacoes.ClassificacaoAlimento(idAlimento, sqlCon)); a.ClassificacaoMedia = a.ObterAvaliacaoMedia(); } } } } return(a); }
public AlimentoEstabelecimento(int numeroPreferenciasVerificadas, float distancia, Estabelecimento estabelecimento, Alimento alimento) { this.numeroPreferenciasVerificadas = numeroPreferenciasVerificadas; this.distancia = distancia; this.estabelecimento = estabelecimento; this.alimento = alimento; }
public AlimentoEstabelecimento(Estabelecimento estabelecimento, Alimento alimento) { this.estabelecimento = estabelecimento; this.alimento = alimento; }
public void AssociaIngredienteAlimento(int idAlimento, string designacaoIngrediente) { Alimento a = alimentos[idAlimento]; a.AdicionaIngrediente(designacaoIngrediente); }
internal bool RegistarAlimento(int idEstabelecimento, Alimento alim) { return(alimentos.RegistarAlimento(idEstabelecimento, alim)); }
//===================================================================== // GESTÃO DE ESTABELECIMENTO //===================================================================== public void RegistarAlimento(int idEstabelecimento, Alimento alim) { proprietarios.RegistarAlimento(idEstabelecimento, alim); }
//===================================================================== // PEDIDOS E CONSULTAS //===================================================================== public List <AlimentoEstabelecimento> EfetuarPedido(string termo, Location localizacao) { RegistaPedidoHistorico(termo); PedidoProcessado pedidoProcessado = new PedidoProcessado(termo); ISet <string> preferencias = new HashSet <string>(); ISet <string> naoPreferencias = new HashSet <string>(); //----------------------------------------------------- // Obtenção das Preferências e Não Preferências //----------------------------------------------------- if (clienteAutenticado != 0) { // cliente Cliente cliente = clientes.ObterPorId(clienteAutenticado); preferencias = cliente.ObterPreferencias(pedidoProcessado.NomeAlimento); ISet <string> preferenciasPedido = pedidoProcessado.Preferencias; preferencias.UnionWith(preferenciasPedido); naoPreferencias = cliente.ObterNaoPreferencias(pedidoProcessado.NomeAlimento); ISet <string> naoPreferenciasPedido = pedidoProcessado.NaoPreferencias; naoPreferencias.UnionWith(naoPreferenciasPedido); } else { // utilizador não autenticado preferencias = pedidoProcessado.Preferencias; naoPreferencias = pedidoProcessado.NaoPreferencias; } Console.WriteLine("PUTA DEITA-TE: "); foreach (var p in naoPreferencias) { Console.Write(p + ","); } //---------------------------------------------------------------------------------------------------- // Obtenção dos Estabelecimentos e respetivos Alimentos que não contêm não preferências do utilizador //---------------------------------------------------------------------------------------------------- List <AlimentoEstabelecimento> listaAEs = new List <AlimentoEstabelecimento>(); IDictionary <int, Estabelecimento> estabsObtidos = new Dictionary <int, Estabelecimento>(); foreach (Alimento a in estabelecimentos.ObterAlimentos(pedidoProcessado.NomeAlimento)) { if (!a.ContemNaoPreferencias(naoPreferencias)) // se não contém não preferências { Alimento alim = estabelecimentos.ObterAlimento(a.Id); int nPreferencias = a.QuantasPreferenciasContem(preferencias); int idEstab = alim.IdEstabelecimento; Estabelecimento estab; Console.WriteLine(alim.Id); if (estabsObtidos.TryGetValue(idEstab, out estab) == false) { estab = estabelecimentos.ObterEstabelecimento(idEstab); estabsObtidos.Add(idEstab, estab); } float distancia = localizacao.DistanceTo(estab.Coords); AlimentoEstabelecimento ae = new AlimentoEstabelecimento(nPreferencias, distancia, estab, alim); listaAEs.Add(ae); } } listaAEs.Sort(); return(listaAEs); }
public bool RegistarAlimento(int idEstabelecimento, Alimento alim) { return(estabelecimentos.RegistarAlimento(idEstabelecimento, alim)); }