Beispiel #1
0
        public async Task DeleteRecipe(int recipeID, string user)
        {
            SavedRecipe savedRecipe = await GetSavedRecipe(recipeID, user);

            _context.SavedRecipes.Remove(savedRecipe);
            await _context.SaveChangesAsync();
        }
Beispiel #2
0
        public async Task <SavedRecipe> CreateSavedRecipes(SavedRecipe savedRecipe)
        {
            _context.SavedRecipes.Add(savedRecipe);
            await _context.SaveChangesAsync();

            return(savedRecipe);
        }
Beispiel #3
0
        public async void CanUpdateSavedRecipe()
        {
            DbContextOptions <CookbookDbContext> options = new DbContextOptionsBuilder <CookbookDbContext>().UseInMemoryDatabase("CanUpdateSavedRecipe").Options;

            using (CookbookDbContext context = new CookbookDbContext(options))
            {
                SavedRecipe savedRecipe = new SavedRecipe();
                savedRecipe.SavedRecipeID = 1;
                savedRecipe.Name          = "Chicken";
                savedRecipe.APIReference  = 2;
                savedRecipe.UserID        = 2;

                savedRecipe.Name         = "Pork";
                savedRecipe.APIReference = 3;
                savedRecipe.UserID       = 3;

                SavedRecipeService savedRecipeService = new SavedRecipeService(context);

                await savedRecipeService.CreateRecipe(savedRecipe);

                await savedRecipeService.UpdateSavedRecipe(savedRecipe);

                var result = context.SavedRecipe.FirstOrDefault(s => s.SavedRecipeID == s.SavedRecipeID);

                Assert.Equal(savedRecipe, result);
            }
        }
        public async Task <bool> SaveRecipe(SaveUserRecipe saveUserRecipe)
        {
            int userId   = saveUserRecipe.userId;
            int recipeId = saveUserRecipe.recipeId;

            // Check if record exist
            SavedRecipe savedRecipe = await _context.SavedRecipes
                                      .Where(x => x.UserId == userId)
                                      .FirstOrDefaultAsync(x => x.RecipeId == recipeId);

            if (savedRecipe == null)
            {
                SavedRecipe saveRecipe = new SavedRecipe();
                saveRecipe.UserId   = userId;
                saveRecipe.RecipeId = recipeId;

                _context.SavedRecipes.Add(saveRecipe);
                var saveResult = await _context.SaveChangesAsync();

                return(saveResult == 1);
            }
            else
            {
                _context.SavedRecipes.Remove(savedRecipe);
                var saveResult = await _context.SaveChangesAsync();

                return(saveResult == 1);
            }
        }
Beispiel #5
0
        public void CanGetUserID()
        {
            SavedRecipe savedRecipe = new SavedRecipe();

            savedRecipe.UserID = 1;

            Assert.Equal(1, savedRecipe.UserID);
        }
Beispiel #6
0
        public void CanGetAPIReference()
        {
            SavedRecipe savedRecipe = new SavedRecipe();

            savedRecipe.APIReference = 1;

            Assert.Equal(1, savedRecipe.APIReference);
        }
Beispiel #7
0
        public void CanGetSavedRecipeID()
        {
            SavedRecipe savedRecipe = new SavedRecipe();

            savedRecipe.SavedRecipeID = 2;

            Assert.Equal(2, savedRecipe.SavedRecipeID);
        }
Beispiel #8
0
        public void CanGetNameOfSavedRecipe()
        {
            SavedRecipe savedRecipe = new SavedRecipe();

            savedRecipe.Name = "ChickenParm";

            Assert.Equal("ChickenParm", savedRecipe.Name);
        }
Beispiel #9
0
        public void CanGetUser()
        {
            SavedRecipe savedRecipe = new SavedRecipe()
            {
                User = "******",
            };

            Assert.Equal("user", savedRecipe.User);
        }
Beispiel #10
0
        public void CanGetRecipeID()
        {
            SavedRecipe savedRecipe = new SavedRecipe()
            {
                RecipeID = 1,
            };

            Assert.Equal(1, savedRecipe.RecipeID);
        }
Beispiel #11
0
 public static SavedRecipeDto AsDto(this SavedRecipe savedRecipe)
 {
     return(new SavedRecipeDto
     {
         id = savedRecipe.Id,
         userId = (int)savedRecipe.UserId,
         recipeId = (int)savedRecipe.RecipeId
     });
 }
Beispiel #12
0
        public void CanSetUserID()
        {
            SavedRecipe savedRecipe = new SavedRecipe();

            savedRecipe.UserID = 1;
            savedRecipe.UserID = 2;

            Assert.Equal(2, savedRecipe.UserID);
        }
Beispiel #13
0
        public void CanSetRecipeID()
        {
            SavedRecipe savedRecipe = new SavedRecipe()
            {
                RecipeID = 1,
            };

            savedRecipe.RecipeID = 2;
            Assert.Equal(2, savedRecipe.RecipeID);
        }
Beispiel #14
0
        // public IEnumerable<SavedRecipe> CreateSavedRecipe(SavedRecipe r)
        // {
        //     if(repo.Any(x=>x.id == r.id))
        //         return null;
        //     repo.Add(r);
        //     return repo;
        // }

        // public IEnumerable<SavedRecipe> GetSavedRecipes()
        // {
        //     return repo;
        // }
        public IEnumerable <SavedRecipeDto> CreateSavedRecipe(SavedRecipeInputDto r)
        {
            var srtoAdd = new SavedRecipe {
                UserId   = r.userId,
                RecipeId = r.recipeId
            };

            _context.SavedRecipes.Add(srtoAdd);
            _context.SaveChanges();
            return(_context.SavedRecipes.Select(x => x.AsDto()));
        }
Beispiel #15
0
        public async Task <SavedRecipe> CreateSavedRecipes(int recipeID, string user)
        {
            SavedRecipe savedRecipe = new SavedRecipe()
            {
                RecipeID = recipeID,
                User     = user
            };

            _context.SavedRecipes.Add(savedRecipe);
            await _context.SaveChangesAsync();

            return(savedRecipe);
        }
Beispiel #16
0
        public async Task <IActionResult> Create([Bind("SavedRecipeID,UserID,APIReference,Name")] SavedRecipe savedRecipe)
        {
            var  name = HttpContext.Session.GetString("UserName");
            User user = await _context.GetUser(name);

            if (ModelState.IsValid)
            {
                await _context.CreateRecipe(savedRecipe);

                return(RedirectToAction(nameof(Index)));
            }

            return(View(savedRecipe));
        }
Beispiel #17
0
        public async Task <IActionResult> Save(SavedRecipe saved)
        {
            if (ModelState.IsValid)
            {
                _context.Add(saved);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            else
            {
                return(RedirectToAction("Index"));
            }
        }
        /// <summary>
        /// Removes saved recipe by id from table, and all associated comments
        /// </summary>
        /// <param name="id">int</param>
        /// <returns>Task</returns>
        public async Task DeleteSavedRecipe(int id)
        {
            var comments = await _context.Comments.ToListAsync();

            var userComments = comments.Where(c => c.SavedRecipeID == id);

            foreach (var item in userComments)
            {
                _context.Comments.Remove(item);
            }
            SavedRecipe savedRecipe = _context.SavedRecipe.FirstOrDefault(s => s.SavedRecipeID == id);

            _context.SavedRecipe.Remove(savedRecipe);
            await _context.SaveChangesAsync();
        }
        /// <summary>
        /// Saves Recipe from API as savedRecipe
        /// </summary>
        /// <param name="id">int</param>
        /// <param name="userName">string</param>
        /// <param name="name">string</param>
        /// <returns>SavedRecipe</returns>
        public async Task <SavedRecipe> SaveRecipe(int id, string userName, string name)
        {
            User user = _context.User.FirstOrDefault(u => u.UserName == userName);

            SavedRecipe saveRecipe = new SavedRecipe();

            saveRecipe.UserID       = user.ID;
            saveRecipe.APIReference = id;
            saveRecipe.Name         = name;

            _context.Add(saveRecipe);
            await _context.SaveChangesAsync();

            return(saveRecipe);
        }
Beispiel #20
0
        /// <summary>
        /// Get details of a recipe by id
        /// </summary>
        /// <param name="id">int</param>
        /// <returns>View(recipe)</returns>
        public async Task <IActionResult> Details(int id)
        {
            SavedRecipe savedRecipe = await _context.GetSavedRecipe(id);

            int iD = savedRecipe.APIReference;

            Recipe recipe = new Recipe();
            IEnumerable <Instructions>      instructions      = null;
            IEnumerable <RecipeIngredients> recipeIngredients = null;
            IEnumerable <Ingredients>       ingredients       = null;


            HttpResponseMessage responseRecipe = await client.GetAsync($"https://cookbookapi20190205105239.azurewebsites.net/api/Recipes/{iD}");

            HttpResponseMessage responseInstructions = await client.GetAsync($"https://cookbookapi20190205105239.azurewebsites.net/api/Instructions");

            HttpResponseMessage responseIngredients = await client.GetAsync($"https://cookbookapi20190205105239.azurewebsites.net/api/RecipeIngredients");

            HttpResponseMessage responseBaseIngredients = await client.GetAsync($"https://cookbookapi20190205105239.azurewebsites.net/api/Ingredients");

            recipe = await responseRecipe.Content.ReadAsAsync <Recipe>();

            instructions = await responseInstructions.Content.ReadAsAsync <IEnumerable <Instructions> >();

            recipeIngredients = await responseIngredients.Content.ReadAsAsync <IEnumerable <RecipeIngredients> >();

            var ingredientQuery = recipeIngredients.Where(r => r.recipeID == iD);

            ingredients = await responseBaseIngredients.Content.ReadAsAsync <IEnumerable <Ingredients> >();

            foreach (var ing in ingredientQuery)
            {
                foreach (var item in ingredients)
                {
                    if (item.ID == ing.ingredientsID)
                    {
                        item.Quantity = ing.quantity;
                        item.RecipeID = ing.recipeID;
                    }
                }
            }
            recipe.Ingredients  = ingredients.Where(ri => ri.RecipeID == iD);
            recipe.Instructions = instructions.Where(ri => ri.RecipeId == iD);
            HttpContext.Session.SetInt32("CommentsID", id);
            HttpContext.Session.SetString("Name", recipe.Name);

            return(View(recipe));
        }
Beispiel #21
0
        //GET: Plan Meal
        public ActionResult Plan(int id)
        {
            var mealToPlan = _context.ScheduledMeals.Find(id);

            var         recipes     = _context.SavedRecipes.Where(r => r.PlannerId == mealToPlan.AssignedPlannerId).ToList();
            SavedRecipe blankRecipe = new SavedRecipe();

            blankRecipe.RecipeName = "None";
            recipes.Add(blankRecipe);


            mealToPlan.Recipes = new SelectList(recipes, nameof(SavedRecipe.SavedRecipeId), nameof(SavedRecipe.RecipeName));
            mealToPlan.Types   = new SelectList(AddMealTypes());

            return(View(mealToPlan));
        }
Beispiel #22
0
        //Saves recipes to the database
        public async Task <bool> SaveRecipe(int?recipeId, string userId)
        {
            var savedRecipe = new SavedRecipe()
            {
                UserId   = userId,
                RecipeId = recipeId
            };

            try
            {
                _context.SavedRecipes.Add(savedRecipe);
                await _context.SaveChangesAsync();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
            return(true);
        }
Beispiel #23
0
        public async Task <IActionResult> ShowRecipeInformation(int id)
        {
            var planner = GetLoggedInPlanner();

            var rawRecipeInformation = await _spoonacular.GetRecipeInformation(id);

            SavedRecipe recipeToSave = new SavedRecipe();

            recipeToSave.PlannerId = planner.PlannerId;

            recipeToSave.ImageURL            = rawRecipeInformation.image;
            recipeToSave.RecipeName          = rawRecipeInformation.title;
            recipeToSave.SpoonacularRecipeId = rawRecipeInformation.id;
            recipeToSave.RecipeURL           = rawRecipeInformation.spoonacularSourceUrl;



            return(View("RecipeInformation", recipeToSave));
        }
Beispiel #24
0
        public void CreateSavedRecipeExists()
        {
            DbContextOptions <CookbookDbContext> options = new DbContextOptionsBuilder <CookbookDbContext>().UseInMemoryDatabase("CreateSavedRecipeExists").Options;

            using (CookbookDbContext context = new CookbookDbContext(options))
            {
                SavedRecipe savedRecipe = new SavedRecipe();
                savedRecipe.SavedRecipeID = 1;
                savedRecipe.Name          = "Chicken";
                savedRecipe.APIReference  = 2;
                savedRecipe.UserID        = 2;

                SavedRecipeService savedRecipeService = new SavedRecipeService(context);

                savedRecipeService.SavedRecipeExists(1);

                var result = context.SavedRecipe.Any(s => s.SavedRecipeID == 1);

                Assert.False(result);
            }
        }
 /// <summary>
 /// Saved recipe from API to table
 /// </summary>
 /// <param name="recipe">SavedRecipe</param>
 /// <returns>Task</returns>
 public async Task CreateRecipe(SavedRecipe recipe)
 {
     _context.SavedRecipe.Add(recipe);
     await _context.SaveChangesAsync();
 }
 /// <summary>
 /// Updates saved recipe in saved recipe database, not currently ever used.
 /// </summary>
 /// <param name="savedRecipe">Savedrecipe</param>
 /// <returns>Task</returns>
 public async Task UpdateSavedRecipe(SavedRecipe savedRecipe)
 {
     _context.SavedRecipe.Update(savedRecipe);
     await _context.SaveChangesAsync();
 }