public async Task <ActionResult <FavouriteRecipe> > PostFavouriteRecipe(FavouriteRecipe favouriteRecipe)
        {
            _context.FavouriteRecipes.Add(favouriteRecipe);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetFavouriteRecipe", new { userId = favouriteRecipe.AppUserId, recipeId = favouriteRecipe.RecipeId }, favouriteRecipe));
        }
Esempio n. 2
0
        public async Task <IActionResult> AddRecipeToFav(int userId, int recipeId)
        {
            if (userId != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value))
            {
                return(Unauthorized());
            }

            var like = await _recipesRepository.GetFav(userId, recipeId);

            if (like != null)
            {
                return(BadRequest("You allready like this recipe"));
            }

            if (await _recipesRepository.GetRecipe(recipeId) == null)
            {
                return(NotFound());
            }

            like = new FavouriteRecipe
            {
                UserId   = userId,
                RecipeId = recipeId
            };

            _recipesRepository.Add <FavouriteRecipe>(like);

            if (await _recipesRepository.SaveAll())
            {
                return(Ok());
            }

            return(BadRequest("Failed  to fav  recipe"));
        }
Esempio n. 3
0
        public async Task <IActionResult> Create(FavouriteRecipe favouriteRecipe)
        {
            //ViewData["RecipeId"] = new SelectList(_context.Recipes, "Id", "Id", favouriteRecipe.RecipeId);
            if (!ModelState.IsValid)
            {
                return(View(favouriteRecipe));
            }

            try
            {
                var    client   = new HttpClient();
                string json     = JsonConvert.SerializeObject(favouriteRecipe);
                var    response = await client.PostAsync(_baseUrl, new StringContent(json, Encoding.UTF8, "application/json"));

                if (response.IsSuccessStatusCode)
                {
                    return(RedirectToAction("Index"));
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError(string.Empty, $"Unable to create record:{ex.Message}");
            }

            return(View(favouriteRecipe));
        }
Esempio n. 4
0
        public List <FavouriteRecipe> GetALL(int id)
        {
            List <FavouriteRecipe> temp = new List <FavouriteRecipe>();

            using (SqlConnection conn = new SqlConnection(Properties.Settings.Default.conStr))
            {
                SqlCommand cmd = new SqlCommand("spGetAll_FavouriteRecipe", conn);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("@UserID", id);

                conn.Open();
                SqlDataReader dr = cmd.ExecuteReader();

                while (dr.Read())
                {
                    FavouriteRecipe favouriteRecipe = new FavouriteRecipe()
                    {
                        RecipeID    = dr.GetInt32(0),
                        UserID      = dr.GetInt32(2),
                        IsFavourite = dr.GetBoolean(14)
                    };
                    temp.Add(favouriteRecipe);
                }
                conn.Close();
            }

            return(temp);
        }
Esempio n. 5
0
        public void Add(FavouriteRecipe favouriteRecipe)
        {
            using (SqlConnection conn = new SqlConnection(Properties.Settings.Default.conStr))
            {
                SqlCommand cmd = conn.CreateCommand();

                cmd.CommandText = "spInsert_FavouriteRecipe";
                cmd.CommandType = CommandType.StoredProcedure;

                cmd.Parameters.AddWithValue("@RecipeID", favouriteRecipe.RecipeID);
                cmd.Parameters.AddWithValue("@UserID", favouriteRecipe.UserID);
                cmd.Parameters.AddWithValue("@IsFavourite", favouriteRecipe.IsFavourite);

                conn.Open();

                try
                {
                    cmd.ExecuteNonQuery();
                }
                catch (SqlException)
                {
                    throw new Exception("Não foi possivel inserir");
                }
                finally
                {
                    conn.Close();
                }
            }
        }
Esempio n. 6
0
        public IActionResult Post(FavouriteRecipe favouriteRecipe)
        {
            if (favouriteRecipe == null)
            {
                BadRequest();
            }

            var frFromDb = context.FavouriteRecipes.
                           FirstOrDefault(fr => fr.RecipeId == favouriteRecipe.RecipeId && fr.UserId == favouriteRecipe.UserId);


            favouriteRecipe.CreatedAt = DateTime.Now;

            try
            {
                context.FavouriteRecipes.Add(favouriteRecipe);
                context.SaveChanges();
            }
            catch (Exception ex)
            {
                Response.StatusCode = (int)HttpStatusCode.MethodNotAllowed;
                return(Json("Error - item is already marked as favourite"));
            }

            return(Ok());
        }
Esempio n. 7
0
        public async Task <IActionResult> AddFavourite(int?id)
        {
            if (!id.HasValue)
            {
                return(NotFound());
            }

            var recipe = recipesRepository.GetRecipe(id.Value);

            if (recipe == null)
            {
                return(NotFound());
            }

            var userId = _userManager.GetUserId(HttpContext.User);

            ViewData["ApplicationUserId"] = new SelectList(usersRepository.GetAllUsers(), "Id", "Id", recipe.ApplicationUserId);

            if (!favouriteRecipesRepository.GetAllFavouriteRecipes().Any(fav => fav.RecipeId == id && fav.ApplicationUserId == userId))
            {
                var favouriteRecipe = new FavouriteRecipe()
                {
                    ApplicationUser = usersRepository.GetAllUsers().First(u => u.Id == userId),
                    Recipe          = recipe
                };

                await favouriteRecipesRepository.Add(favouriteRecipe);
            }


            return(RedirectToAction(nameof(FavouriteRecipes)));
        }
        public ActionResult DeleteConfirmed(int id)
        {
            FavouriteRecipe favouriteRecipe = db.FavouriteRecipies.Find(id);

            db.FavouriteRecipies.Remove(favouriteRecipe);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
 public ActionResult Edit([Bind(Include = "UserId,ReceipeId")] FavouriteRecipe favouriteRecipe)
 {
     if (ModelState.IsValid)
     {
         db.Entry(favouriteRecipe).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.ReceipeId = new SelectList(db.Recipies, "Id", "Name", favouriteRecipe.ReceipeId);
     ViewBag.UserId    = new SelectList(db.Users, "Id", "Login", favouriteRecipe.UserId);
     return(View(favouriteRecipe));
 }
        // GET: FavouriteRecipes/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            FavouriteRecipe favouriteRecipe = db.FavouriteRecipies.Find(id);

            if (favouriteRecipe == null)
            {
                return(HttpNotFound());
            }
            return(View(favouriteRecipe));
        }
        // GET: FavouriteRecipes/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            FavouriteRecipe favouriteRecipe = db.FavouriteRecipies.Find(id);

            if (favouriteRecipe == null)
            {
                return(HttpNotFound());
            }
            ViewBag.ReceipeId = new SelectList(db.Recipies, "Id", "Name", favouriteRecipe.ReceipeId);
            ViewBag.UserId    = new SelectList(db.Users, "Id", "Login", favouriteRecipe.UserId);
            return(View(favouriteRecipe));
        }
Esempio n. 12
0
        public async Task <IActionResult> Edit(string userId, int recipeId, [Bind("UserId,RecipeId")] FavouriteRecipe favouriteRecipe)
        {
            //ViewData["RecipeId"] = new SelectList(_context.Recipes, "Id", "Id", favouriteRecipe.RecipeId);
            if (!ModelState.IsValid)
            {
                return(View(favouriteRecipe));
            }
            var    client   = new HttpClient();
            string json     = JsonConvert.SerializeObject(favouriteRecipe);
            var    response = await client.PutAsync($"{_baseUrl}/{favouriteRecipe.AppUserId}/{favouriteRecipe.RecipeId}", new StringContent(json, Encoding.UTF8, "application/json"));

            if (response.IsSuccessStatusCode)
            {
                return(RedirectToAction("Index"));
            }

            return(View(favouriteRecipe));
        }
Esempio n. 13
0
        public async Task <IActionResult> DeleteConfirmed([Bind("AppUserId,RecipeId")] FavouriteRecipe favouriteRecipe)
        {
            try
            {
                var client = new HttpClient();
                HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Delete, $"{_baseUrl}/{favouriteRecipe.AppUserId}/{favouriteRecipe.RecipeId}")
                {
                    Content = new StringContent(JsonConvert.SerializeObject(favouriteRecipe), Encoding.UTF8, "application/json")
                };

                var response = await client.SendAsync(request);

                return(RedirectToAction("Index"));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError(string.Empty, $"Unable to delete record:{ex.Message}");
            }

            return(View(favouriteRecipe));
        }
Esempio n. 14
0
        public void Update(FavouriteRecipe favouriteRecipe)
        {
            using (SqlConnection conn = new SqlConnection(Properties.Settings.Default.conStr))
            {
                SqlCommand cmd = conn.CreateCommand();

                cmd.CommandText = "spUpdate_Insert_FavouriteRecipe";
                cmd.CommandType = CommandType.StoredProcedure;

                cmd.Parameters.AddWithValue("@RecipeID", favouriteRecipe.RecipeID);
                cmd.Parameters.AddWithValue("@UserID", favouriteRecipe.UserID);
                cmd.Parameters.AddWithValue("@IsFavourite", favouriteRecipe.IsFavourite);

                conn.Open();

                int affectedRows = cmd.ExecuteNonQuery();

                if (affectedRows != 1)
                {
                    throw new Exception("Não foi possivel alterar os dados");
                }
            }
        }
Esempio n. 15
0
 public async Task Add(FavouriteRecipe favourite)
 {
     db.FavouriteRecipes.Add(favourite);
     await db.SaveChangesAsync();
 }
        public async Task <IActionResult> PutFavouriteRecipe(string userId, int recipeId, FavouriteRecipe favouriteRecipe)
        {
            if (userId != favouriteRecipe.AppUserId || recipeId != favouriteRecipe.RecipeId)
            {
                return(BadRequest());
            }

            _context.Entry(favouriteRecipe).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!FavouriteRecipeExists(userId, recipeId))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
 public void Update(FavouriteRecipe favouriteRecipe)
 {
     _repo.Update(favouriteRecipe);
 }
 public void Add(FavouriteRecipe favouriteRecipe)
 {
     _repo.Add(favouriteRecipe);
 }