示例#1
0
        /// <summary>
        /// Método que adiciona uma receita ao histórico de um utilizador
        /// </summary>
        /// <param name="id_receita">Receita a adicionar</param>
        /// <param name="email">Email do utilizador</param>
        public void addToHistorico(int id_receita, string email)
        {
            int id_utilizador = _context_u.Utilizador.Where(u => u.email.Equals(email)).First().id_utilizador;

            HistoricoUtilizador hu = new HistoricoUtilizador();

            hu.avaliacao     = 0;
            hu.data_conf     = DateTime.Now;
            hu.receita_id    = id_receita;
            hu.utilizador_id = id_utilizador;

            _context_hu.HistoricoUtilizador.Add(hu);
            _context_hu.SaveChanges();
        }
示例#2
0
        /// <summary>
        /// Método que regista a avaliação dada por um utilizador para uma determinada receita
        /// </summary>
        /// <param name="id_receita">Receita a avaliar</param>
        /// <param name="email_utilizador">Email do utilizador</param>
        /// <param name="pontuacao">Pontuação dada</param>
        public void avalia(int id_receita, string email_utilizador, int pontuacao)
        {
            Receita r             = _context_r.Receita.Find(id_receita);
            int     id_utilizador = _context_u.Utilizador.Where(u => u.email.Equals(email_utilizador)).First().id_utilizador;

            r.avaliacao = ((r.avaliacao * r.n_avaliacoes) + pontuacao) / (r.n_avaliacoes + 1);
            r.n_avaliacoes++;

            _context_r.Update <Receita>(r);
            _context_r.SaveChanges();

            try {
                HistoricoUtilizador historico = _context_u.HistoricoUtilizador.Where(hu => hu.utilizador_id == id_utilizador && hu.receita_id == id_receita).OrderByDescending(hu => hu.data_conf).First();

                historico.avaliacao = pontuacao;

                _context_u.HistoricoUtilizador.Update(historico);
                _context_u.SaveChanges();
            }
            catch {
            }
        }