Ejemplo n.º 1
0
        public ActionResult DisplayUserAttempts()
        {
            RecipeDBEntities ORM = new RecipeDBEntities();

            //Entity
            var User_ID = User.Identity.GetUserId();

            //-Get the initial portion of a username from recipe
            //attempts in RECIPEDB
            List <RecipeAttempt> UserList = ORM.RecipeAttempts.Where(x => x.User_ID == User_ID).ToList();

            string username = User.Identity.GetUserName().ToString();

            username = username.Substring(0, username.IndexOf("@"));

            ViewBag.Results = UserList;

            ViewBag.Username = username;

            List <RecipeAttempt> YourList = ORM.RecipeAttempts.Where(x => x.User_ID == User_ID).ToList();

            ViewBag.AllResults  = JsonConvert.SerializeObject(ORM.RecipeAttempts.ToList());
            ViewBag.YourResults = JsonConvert.SerializeObject(YourList);

            return(View("../Home/UserProfile"));
        }
Ejemplo n.º 2
0
        //TODO: Add complexity to selection system
        //Search all attempts by title, difficulty, or rating
        public ActionResult SearchAllAttempts(string InputTitle, string InputDifficulty, string InputRating)
        {
            RecipeDBEntities      ORM      = new RecipeDBEntities();
            ContingencyCookingDAL DAL      = new ContingencyCookingDAL();
            List <RecipeAttempt>  UserList = new List <RecipeAttempt>();

            if (InputTitle != null && InputDifficulty == null && InputRating == null)
            {
                UserList = (ORM.RecipeAttempts.Where(x => x.Recipe.Title.ToLower().Contains(InputTitle.ToLower())).ToList());
            }
            else if (InputTitle == null && InputDifficulty != null && InputRating == null)
            {
                UserList = ORM.RecipeAttempts.Where(x => x.Difficulty.Contains(InputDifficulty)).ToList();
            }
            else if (InputTitle == null && InputDifficulty == null && InputRating != null)
            {
                UserList = ORM.RecipeAttempts.Where(x => x.Rating.ToString().Contains(InputRating)).ToList();
            }

            List <string> UserEmails = DAL.GetUserEmailsFromAttempts(UserList);

            ViewBag.Emails         = UserEmails;
            ViewBag.Results        = UserList;
            ViewBag.ListDifficulty = ORM.RecipeAttempts.Select(y => y.Difficulty).Distinct().ToList();
            ViewBag.ListRating     = ORM.RecipeAttempts.Select(y => y.Rating).Distinct().ToList();

            return(View("../Home/AllResults"));
        }
Ejemplo n.º 3
0
        //Submit a user's attempt to RECIPEDB
        public ActionResult SubmitRecipeAttempt(RecipeAttempt attempt)
        {
            RecipeDBEntities ORM = new RecipeDBEntities();

            try
            {
                if (ORM.Recipes.Find(attempt.RecipeID) == null)
                {
                    JObject JsonData = (JObject)Session["Recipe"];

                    Recipe RecipeForDB = new Recipe();

                    RecipeForDB.RecipeID = JsonData["RecipeID"].ToString();
                    // RecipeForDB.Description = JsonData["Description"].ToString();
                    RecipeForDB.Ingredients_Num = JsonData["Ingredients"].ToList().Count;
                    RecipeForDB.Category        = JsonData["Cuisine"].ToString();
                    RecipeForDB.Title           = JsonData["Title"].ToString();

                    ORM.Recipes.Add(RecipeForDB);
                }

                ORM.RecipeAttempts.Add(attempt);
                ORM.SaveChanges();

                Session["Recipe"] = null;

                return(RedirectToAction("DisplayUserAttempts", new { User_ID = attempt.User_ID }));
            }
            catch (Exception e)
            {
                Debug.WriteLine(e);
                return(View("../Home/ErrorPage"));
            }
        }
        public ActionResult SaveUserRating(int AttemptID, int Value)
        {
            RecipeDBEntities ORM = new RecipeDBEntities();

            List <Rating> RatingList = ORM.Ratings.Where(x => x.AttemptID == AttemptID).ToList();
            List <string> UserList   = ORM.Ratings.Where(x => x.AttemptID == AttemptID).Select(x => x.User_ID).ToList();

            if (UserList.Contains(User.Identity.GetUserId()))
            {
                Rating update = RatingList.FirstOrDefault(x => x.User_ID == User.Identity.GetUserId());
                update.Rating1          = Value;
                ORM.Entry(update).State = System.Data.Entity.EntityState.Modified;
            }
            else
            {
                Rating temp = new Rating();
                temp.Rating1   = Value;
                temp.User_ID   = User.Identity.GetUserId();
                temp.AttemptID = AttemptID;
                ORM.Ratings.Add(temp);
            }


            ORM.SaveChanges();


            return(RedirectToAction("DisplayAllAttempts"));
        }
Ejemplo n.º 5
0
        public ActionResult Graph()
        {
            RecipeDBEntities ORM = new RecipeDBEntities();

            var User_ID = User.Identity.GetUserId();

            List <RecipeAttempt> UserList = ORM.RecipeAttempts.Where(x => x.User_ID == User_ID).ToList();

            ViewBag.AllResults  = JsonConvert.SerializeObject(ORM.RecipeAttempts.ToList());
            ViewBag.YourResults = JsonConvert.SerializeObject(UserList);
            return(View());
        }
Ejemplo n.º 6
0
        //Order profile by Title
        public ActionResult OrderByTitle(string User_ID)
        {
            RecipeDBEntities ORM = new RecipeDBEntities();

            List <RecipeAttempt> UserList = ORM.RecipeAttempts.OrderBy(w => w.Recipe.Title).Where(x => x.User_ID == User_ID).ToList();

            ViewBag.Results = UserList;

            List <RecipeAttempt> YourList = ORM.RecipeAttempts.Where(x => x.User_ID == User_ID).ToList();

            ViewBag.AllResults  = JsonConvert.SerializeObject(ORM.RecipeAttempts.ToList());
            ViewBag.YourResults = JsonConvert.SerializeObject(YourList);

            return(View("../Home/UserProfile"));
        }
Ejemplo n.º 7
0
        //Get and display a list of distinct recipes
        public ActionResult DisplayAllAttempts()
        {
            RecipeDBEntities      ORM = new RecipeDBEntities();
            ContingencyCookingDAL DAL = new ContingencyCookingDAL();

            List <RecipeAttempt> UserList = ORM.RecipeAttempts.ToList();

            List <string> UserEmails = DAL.GetUserEmailsFromAttempts(UserList);

            ViewBag.Emails         = UserEmails;
            ViewBag.Results        = UserList;
            ViewBag.ListDifficulty = ORM.RecipeAttempts.Select(y => y.Difficulty).Distinct().ToList();
            ViewBag.ListRating     = ORM.RecipeAttempts.Select(y => y.Rating).Distinct().ToList();

            return(View("../Home/AllResults"));
        }
        //Generate a Leaderboard View by grabbing an ApplicationUser from Identity
        //and using that data we popuplate a LeaderboardUser
        public ActionResult DisplayLeaderboard()
        {
            RecipeDBEntities     ORM     = new RecipeDBEntities();
            ApplicationDbContext UserORM = new ApplicationDbContext();

            List <LeaderboardUser> LBlist = new List <LeaderboardUser>();

            List <string> tempList = ORM.RecipeAttempts.Select(x => x.User_ID).Distinct().ToList();

            foreach (string UserID in tempList)
            {
                LeaderboardUser temp     = new LeaderboardUser();
                ApplicationUser tempUser = UserORM.Users.Find(UserID);
                temp.UserName       = tempUser.Email;
                temp.TotalAttempts  = ORM.RecipeAttempts.Where(x => x.User_ID == UserID).Count();
                temp.AveDifficulty  = Math.Round(ORM.RecipeAttempts.Where(x => x.User_ID == UserID).Select(x => x.Difficulty).Select(int.Parse).Average(), 3);
                temp.AveIngredients = Math.Round((double)ORM.RecipeAttempts.Where(x => x.User_ID == UserID).Select(x => x.Recipe.Ingredients_Num).Average(), 3);

                LBlist.Add(temp);
            }
            List <int?> RatingList = ORM.Ratings.Select(x => x.AttemptID).Distinct().ToList();

            List <LeaderboardRating> LBRatingList = new List <LeaderboardRating>();


            foreach (var Attempt in RatingList)
            {
                RecipeAttempt   AttemptForLB = ORM.RecipeAttempts.Find(Attempt);
                ApplicationUser tempUser     = UserORM.Users.Find(AttemptForLB.User_ID);

                LeaderboardRating temp = new LeaderboardRating();
                temp.UserName = tempUser.Email;
                temp.Image    = AttemptForLB.image;
                temp.Title    = AttemptForLB.Recipe.Title;
                double AveRating = (double)ORM.Ratings.Where(x => x.RecipeAttempt.AttemptID == AttemptForLB.AttemptID).Select(x => x.Rating1).Average();
                temp.AveRating       = String.Format("{0:P2}.", AveRating);
                temp.NumberOfRatings = ORM.Ratings.Where(x => x.RecipeAttempt.AttemptID == AttemptForLB.AttemptID).Count();
                LBRatingList.Add(temp);
            }
            ViewBag.Ratings = LBRatingList;
            ViewBag.Users   = LBlist;
            return(View("../Home/Leaderboard"));
        }
        //TODO: Add complexity to selection system
        //Search all attempts by title, difficulty, or rating
        public ActionResult SearchAllAttempts(string InputTitle, string InputDifficulty, string InputRating)
        {
            RecipeDBEntities      ORM      = new RecipeDBEntities();
            ContingencyCookingDAL DAL      = new ContingencyCookingDAL();
            List <RecipeAttempt>  UserList = new List <RecipeAttempt>();

            string[] splitInput = InputTitle.Split(' ');

            if (InputTitle != null && InputDifficulty == null && InputRating == null)
            {
                for (int i = 0; i < splitInput.Length; i++)
                {
                    if (InputTitle.Contains(splitInput[i]))
                    {
                        var temp = splitInput[i];
                        UserList = ORM.RecipeAttempts.Where(x => x.Recipe.Title.ToLower().Contains(temp.ToString())).ToList();
                    }
                }

                //UserList = (from p in ORM.RecipeAttempts where splitInput.Any(val => p.Recipe.Title.Contains(val)) select p).ToList();
            }
            else if (InputTitle == null && InputDifficulty != null && InputRating == null)
            {
                UserList = ORM.RecipeAttempts.Where(x => x.Difficulty.Contains(InputDifficulty)).ToList();
            }
            else if (InputTitle == null && InputDifficulty == null && InputRating != null)
            {
                UserList = ORM.RecipeAttempts.Where(x => x.Rating.ToString().Contains(InputRating)).ToList();
            }

            List <string> UserEmails = DAL.GetUserEmailsFromAttempts(UserList);

            ViewBag.Emails         = UserEmails;
            ViewBag.Results        = UserList;
            ViewBag.ListDifficulty = ORM.RecipeAttempts.Select(y => y.Difficulty).Distinct().ToList();
            ViewBag.ListRating     = ORM.RecipeAttempts.Select(y => y.Rating).Distinct().ToList();

            return(View("../Home/AllResults"));
        }
        public ActionResult OrderByTotalAttempts()
        {
            RecipeDBEntities     ORM     = new RecipeDBEntities();
            ApplicationDbContext UserORM = new ApplicationDbContext();

            List <LeaderboardUser> LBlist = new List <LeaderboardUser>();

            List <string> tempList = ORM.RecipeAttempts.Select(x => x.User_ID).Distinct().ToList();

            foreach (string UserID in tempList)
            {
                LeaderboardUser temp     = new LeaderboardUser();
                ApplicationUser tempUser = UserORM.Users.Find(UserID);
                temp.UserName       = tempUser.Email;
                temp.TotalAttempts  = ORM.RecipeAttempts.Where(x => x.User_ID == UserID).Count();
                temp.AveDifficulty  = Math.Round(ORM.RecipeAttempts.Where(x => x.User_ID == UserID).Select(x => x.Difficulty).Select(int.Parse).Average(), 3);
                temp.AveIngredients = Math.Round((double)ORM.RecipeAttempts.Where(x => x.User_ID == UserID).Select(x => x.Recipe.Ingredients_Num).Average(), 3);

                LBlist.Add(temp);
            }
            ViewBag.Users = LBlist.OrderBy(x => x.TotalAttempts);
            return(View("../Home/Leaderboard"));
        }