示例#1
0
        public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position)
        {
            // loads the data at the specified position into the views whose
            // references are stored in the given view holder
            AlimentoEstabelecimento alimentoEstabelecimento = Resultados[position];
            ResultadoViewHolder     vh = holder as ResultadoViewHolder;

            byte[] foto  = alimentoEstabelecimento.Alimento.Foto;
            float? preco = alimentoEstabelecimento.Alimento.Preco;

            // Campos opcionais
            if (foto != null)
            {
                vh.FoodImage.SetImageBitmap(BitmapFactory.DecodeByteArray(foto, 0, foto.Length));
            }
            if (preco.HasValue)
            {
                vh.Price.Text = preco + "€";
            }
            // Campos obrigatórios
            vh.FoodName.Text       = alimentoEstabelecimento.Alimento.Designacao;
            vh.Rating.Rating       = alimentoEstabelecimento.Alimento.ClassificacaoMedia;
            vh.RestaurantName.Text = alimentoEstabelecimento.Estabelecimento.Nome;
            vh.Distance.Text       = string.Format("{0:F2} Km", alimentoEstabelecimento.Distancia / 1000.0f);
            vh.Street.Text         = alimentoEstabelecimento.Estabelecimento.Morada;
            vh.Contact.Text        = alimentoEstabelecimento.Estabelecimento.ContactoTel;
        }
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            SetContentView(Resource.Layout.AlimentoPerfil);

            foto                 = FindViewById <ImageView>(Resource.Id.picAlimentoPerfilImageView);
            textViewAlimento     = FindViewById <TextView>(Resource.Id.nomeAlimentoPerfilTextView);
            barraRating          = FindViewById <RatingBar>(Resource.Id.ratingAlimentoPerfilRatingBar);
            textViewRestaurante  = FindViewById <TextView>(Resource.Id.restauranteAlimentoPerfilTextView);
            textViewDistancia    = FindViewById <TextView>(Resource.Id.distanciaAlimentoPerfilTextView);
            textViewRua          = FindViewById <TextView>(Resource.Id.ruaAlimentoPerfilTextView);
            textViewContacto     = FindViewById <TextView>(Resource.Id.contactoAlimentoPerfilTextView);
            textViewPreco        = FindViewById <TextView>(Resource.Id.precoAlimentoPerfilTextView);
            labelIngredientes    = FindViewById <TextView>(Resource.Id.ingrAlimentoPerfilTextView);
            textViewIngredientes = FindViewById <TextView>(Resource.Id.ingredientesAlimentoPerfilTextView);

            textViewRestaurante.Click += HandlerClickRestaurante;
            // Botões
            botaoHorario     = FindViewById <Button>(Resource.Id.horarioPerfilButton);
            botaoComentarios = FindViewById <Button>(Resource.Id.comentariosPerfilButton);
            botaoPartilha    = FindViewById <Button>(Resource.Id.partilhaPerfilButton);
            botaoMapa        = FindViewById <ImageButton>(Resource.Id.direcoesAlimentoPerfilButton);

            botaoHorario.Click     += HandlerBotaoHorario;
            botaoComentarios.Click += HandlerBotaoComentarios;
            botaoPartilha.Click    += HandlerBotaoPartilha;
            botaoMapa.Click        += HandlerBotaoMapa;

            alimentoEstabelecimento = (AlimentoEstabelecimento)Intent.GetParcelableExtra("alimentoEstabelecimento");
            byte[]        fotoAlimento = alimentoEstabelecimento.Alimento.Foto;
            float?        preco        = alimentoEstabelecimento.Alimento.Preco;
            ISet <string> ingredientes = alimentoEstabelecimento.Alimento.Ingredientes;

            // Campos opcionais
            if (fotoAlimento != null)
            {
                foto.SetImageBitmap(BitmapFactory.DecodeByteArray(fotoAlimento, 0, fotoAlimento.Length));
            }
            if (preco.HasValue)
            {
                textViewPreco.Text = preco + "€";
            }
            if (ingredientes != null)
            {
                textViewIngredientes.Text = string.Join(", ", ingredientes);
            }
            // Campos obrigatórios
            textViewAlimento.Text = alimentoEstabelecimento.Alimento.Designacao;
            barraRating.Rating    = alimentoEstabelecimento.Alimento.ClassificacaoMedia;
            textViewRestaurante.SetTextColor(Color.ParseColor("#4286f4"));
            textViewRestaurante.Text = alimentoEstabelecimento.Estabelecimento.Nome;
            textViewDistancia.Text   = string.Format("{0:F2} Km", alimentoEstabelecimento.Distancia / 1000.0f);
            textViewRua.Text         = alimentoEstabelecimento.Estabelecimento.Morada;
            textViewContacto.Text    = alimentoEstabelecimento.Estabelecimento.ContactoTel;

            textViewIngredientes.Selected = true;
            textViewIngredientes.Click   += (sender, args) => { textViewIngredientes.Selected = !textViewIngredientes.Selected; };
        }
示例#3
0
        void OnItemClick(object sender, int position)
        {
            AlimentoEstabelecimento itemSelecionado = resultados[position];
            var intent = new Intent(this, typeof(PerfilAlimentoActivity));

            // handler for the itemClick event;
            // It should just start a PerfilAlimentoActivity
            // of the item clicked
            // if we pass with an intent the info that we already
            // have on the item to the new activity we wont need
            // to retrieve those bits of info from the database
            intent.PutExtra("alimentoEstabelecimento", itemSelecionado);
            StartActivity(intent);
        }
示例#4
0
        //=====================================================================
        // 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);
        }