コード例 #1
0
        public ActionResult CompareMissingIngredients(string ToCompare, string UserID)
        {
            UserRecipe.SaveRecipe(ToCompare, UserID);
            pantrypartyEntities ORM = new pantrypartyEntities();
            List <Ingredient>   RecipesIngredientsList = new List <Ingredient>();
            List <Ingredient>   MyIngredients          = new List <Ingredient>();

            // Creates list of RecipeIngredient objects and initializes RecipeIngredientsList with all matching values
            List <RecipeIngredient> ChangeToRecipesIng = ORM.RecipeIngredients.Where(x => x.RecipeID == ToCompare).ToList();

            foreach (RecipeIngredient x in ChangeToRecipesIng)
            {
                if (!RecipesIngredientsList.Contains(ORM.Ingredients.Find(x.IngredientID)))
                {
                    RecipesIngredientsList.Add(ORM.Ingredients.Find(x.IngredientID));
                }
            }

            // Creates list of UserIngredient objects and initializes UserIngredientList with all matching values
            List <UserIngredient> ChangeToUserIngredients = ORM.UserIngredients.Where(x => x.UserID == UserID).ToList();

            foreach (UserIngredient x in ChangeToUserIngredients)
            {
                if (!MyIngredients.Contains(ORM.Ingredients.Find(x.IngredientID)))
                {
                    MyIngredients.Add(ORM.Ingredients.Find(x.IngredientID));
                }
            }

            // Edits recipe's ingredients list to contain only missing ingredients
            foreach (Ingredient x in MyIngredients)
            {
                if (RecipesIngredientsList.Contains(x))
                {
                    RecipesIngredientsList.Remove(x);
                }
            }

            // Creates list of Users with any/all of your missing ingredients
            List <AspNetUser> CheckNearby = UserIngredient.FindUsersWith(RecipesIngredientsList);

            // Sends list of nearby users with your missing ingredients to page

            List <AspNetUser> NearbyUsers = AspNetUser.FindNearbyUsers(CheckNearby, UserID);

            ViewBag.NearbyUsers = NearbyUsers;

            ViewBag.CurrentUserLatLong = Geocode(UserID);
            ViewBag.LatLongArray       = Geocode(NearbyUsers, UserID);

            // Sends list of your missing ingredients to page
            // ViewBag.MissingIngredients = RecipesIngredientsList;

            List <UserIngredient> Test = new List <UserIngredient>();

            foreach (Ingredient item in RecipesIngredientsList)
            {
                Test.AddRange(ORM.UserIngredients.Where(x => x.IngredientID == item.Name));
            }
            ViewBag.UserIngredients = Test.Distinct().ToList();

            string APIkey = System.Configuration.ConfigurationManager.AppSettings["Google Marker API KEY"];

            ViewData["APIkey"] = APIkey;

            return(View("NearbyUsers"));
        }