/// <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(); }
/// <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 { } }