public IActionResult GetHistorico(string username, string remove) { if (remove == "true") { historicoHandling.removeHistorico(username); } Historico[] his = historicoHandling.getHistorico(username); var map = new Dictionary<int, int>(); foreach (Historico h in his) { if (!map.ContainsKey(h.idReceita)) { if (h.NrPasso == 1 || h.NrPasso == 2) map.Add(h.idReceita, 1); } else { if (h.NrPasso == 1 || h.NrPasso == 2) map[h.idReceita]++; } } Dictionary<Receita, int> mapreceita = new Dictionary<Receita, int>(); Dictionary<Receita, (double, double)> mapreceitatempo = new Dictionary<Receita, (double, double)>(); Dictionary<int, int>.KeyCollection keyColl = map.Keys; int count = 0; foreach (int i in keyColl) { // numero de vezes Receita r = receitaHandling.getReceita(i); mapreceita.Add(r, map[i]); count += map[i]; // melhor tempo int nr_passos = receitapassoHandling.getNrPassosdaReceita(i); List<int> rpassos = receitapassoHandling.getPassosDaReceita(i); double estimado = getTempoReceita(rpassos); double melhor_tempo = historicoHandling.getMelhorTempoReceita(username, i, nr_passos); var t = (estimado, melhor_tempo); mapreceitatempo.Add(r, t); } HistoricoStat hs = new HistoricoStat(); hs.num_receitas = mapreceita; hs.total_realizadas = count; hs.tempos = mapreceitatempo; return View(hs); }
public IActionResult SelectReceita(int id) { ReceitaTotal res = new ReceitaTotal(); Receita recipe = receitaHandling.getReceita(id); int nrpassos = receitapassoHandling.getNrPassosdaReceita(id); Dictionary <int, string> desc_passos = new Dictionary <int, string>(); Dictionary <int, Receita> passo_subreceita = new Dictionary <int, Receita>(); List <Comentario> coments = comentarioHandling.getComentariosReceita(id); List <int> idPassos = receitapassoHandling.getPassosDaReceita(id); List <Passo> passos = new List <Passo>(); List <Ingrediente> ingredientes = new List <Ingrediente>(); List <Utensilio> utensilios = new List <Utensilio>(); foreach (int i in idPassos) { // Passo Passo p = passoHandling.selectPasso(i); passos.Add(p); // Ação Acao ac = acaoHandling.selectAcao(p.idAcao); // Ingrediente Ingrediente ing = ingredienteHandling.selectIngrediente(p.idIngrediente); // Descrição string desc_passo; if (ing != null) { desc_passo = new string(ac.Descricao + " " + p.Quantidade + " " + p.Unidade + " " + ing.Nome + " " + p.Extra + "."); if (!ingredientes.Contains(ing)) { ingredientes.Add(ing); } } else { desc_passo = new string(ac.Descricao + " " + p.Quantidade + " " + p.Unidade + " " + p.Extra + "."); } desc_passos.Add(receitapassoHandling.getPassoDaReceita(id, i), desc_passo); // Subreceita if (p.idReceita != -1) { passo_subreceita.Add(receitapassoHandling.getPassoDaReceita(id, i), receitaHandling.getReceita(p.idReceita)); } // Utensílios List <UtensilioPasso> ups = utensiliopassoHandling.selectUtensiliosPassos(i); foreach (UtensilioPasso up in ups) { Utensilio u = utensilioHandling.selectUtensilio(up.IdUtensilio); if (!utensilios.Contains(u)) { utensilios.Add(u); } } } res.rec = recipe; res.pass = passos; res.desc_passos = desc_passos; res.passo_subreceita = passo_subreceita; res.coments = coments; res.nrpassos = nrpassos; res.ingredientes = ingredientes; res.utensilios = utensilios; return(View(res)); }