public async Task DeleteRecipe(int recipeID, string user) { SavedRecipe savedRecipe = await GetSavedRecipe(recipeID, user); _context.SavedRecipes.Remove(savedRecipe); await _context.SaveChangesAsync(); }
public async Task <SavedRecipe> CreateSavedRecipes(SavedRecipe savedRecipe) { _context.SavedRecipes.Add(savedRecipe); await _context.SaveChangesAsync(); return(savedRecipe); }
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); } }
public void CanGetUserID() { SavedRecipe savedRecipe = new SavedRecipe(); savedRecipe.UserID = 1; Assert.Equal(1, savedRecipe.UserID); }
public void CanGetAPIReference() { SavedRecipe savedRecipe = new SavedRecipe(); savedRecipe.APIReference = 1; Assert.Equal(1, savedRecipe.APIReference); }
public void CanGetSavedRecipeID() { SavedRecipe savedRecipe = new SavedRecipe(); savedRecipe.SavedRecipeID = 2; Assert.Equal(2, savedRecipe.SavedRecipeID); }
public void CanGetNameOfSavedRecipe() { SavedRecipe savedRecipe = new SavedRecipe(); savedRecipe.Name = "ChickenParm"; Assert.Equal("ChickenParm", savedRecipe.Name); }
public void CanGetUser() { SavedRecipe savedRecipe = new SavedRecipe() { User = "******", }; Assert.Equal("user", savedRecipe.User); }
public void CanGetRecipeID() { SavedRecipe savedRecipe = new SavedRecipe() { RecipeID = 1, }; Assert.Equal(1, savedRecipe.RecipeID); }
public static SavedRecipeDto AsDto(this SavedRecipe savedRecipe) { return(new SavedRecipeDto { id = savedRecipe.Id, userId = (int)savedRecipe.UserId, recipeId = (int)savedRecipe.RecipeId }); }
public void CanSetUserID() { SavedRecipe savedRecipe = new SavedRecipe(); savedRecipe.UserID = 1; savedRecipe.UserID = 2; Assert.Equal(2, savedRecipe.UserID); }
public void CanSetRecipeID() { SavedRecipe savedRecipe = new SavedRecipe() { RecipeID = 1, }; savedRecipe.RecipeID = 2; Assert.Equal(2, savedRecipe.RecipeID); }
// 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())); }
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); }
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)); }
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); }
/// <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)); }
//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)); }
//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); }
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)); }
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(); }