public IActionResult Index() { var claim = HttpContext.User.Claims.First(c => c.Type == ClaimTypes.Sid); int idUser = int.Parse(claim.Value); RecipeDAO dao = new RecipeDAO(); UserDAO daou = new UserDAO(); Utilizador u = daou.FindById(idUser); List <Recipe> recipes = dao.LoadRecipeByType(u.Preferencia); Dictionary <int, float> rating = dao.allRatings(); List <KeyValuePair <int, float> > sortingDic = rating.ToList(); sortingDic.Sort((pair1, pair2) => pair2.Value.CompareTo(pair1.Value)); List <Recipe> cardRecipes = new List <Recipe>(); foreach (KeyValuePair <int, float> pairs in sortingDic.Take(2)) { cardRecipes.Add(dao.FindById(pairs.Key)); } List <Recipe> aux = dao.LoadRecipes(); foreach (Recipe t in cardRecipes) { bool flag = aux.Remove(t); Console.WriteLine(flag); } Random rnd = new Random(); for (int i = 0; i < 2; i++) { if (aux.Count > 0) { int rand = rnd.Next(aux.Count); Recipe t = aux[rand]; cardRecipes.Add(t); aux.Remove(t); } } List <Recipe> receitas = dao.getFavorites(idUser); List <int> favoritos = new List <int>(); foreach (Recipe recp in receitas) { favoritos.Add(recp.Id_Recipe); } ViewBag.Favorites = favoritos; ViewBag.Ratings = rating; ViewBag.CardRecipe = cardRecipes; return(View(recipes)); }
public ActionResult Random(int rid, string rdata) { RecipeDAO dao = new RecipeDAO(); List <Recipe> recipes = dao.LoadRecipeByType(rid); Random rnd = new Random(); List <Recipe> r_menu = new List <Recipe>(); for (int i = 0; i < 14; i++) { int rand = rnd.Next(recipes.Count); r_menu.Add(recipes[rand]); } DateTime parsedDate = DateTime.Parse(rdata); var claim = HttpContext.User.Claims.First(c => c.Type == ClaimTypes.Sid); int idUser = int.Parse(claim.Value); MenuDAO daoM = new MenuDAO(); daoM.Insert(parsedDate, r_menu, idUser); return(RedirectToAction("Index", "Menu")); }