Ejemplo n.º 1
0
        public async Task <FavouriteResponse> UnassignFavouriteAsync(int userId, int locatableId)
        {
            try
            {
                Favourite favourite = await _favouriteRepository.FindByUserIdAndLocatableId(userId, locatableId);

                _favouriteRepository.Remove(favourite);
                await _unitOfWork.CompleteAsync();

                return(new FavouriteResponse(favourite));
            }
            catch (Exception ex)
            {
                return(new FavouriteResponse($"An error ocurred while unnasigning Favourite to User: {ex.Message}"));
            }
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> RemoveFromFavourite(Guid id)
        {
            Recipe recipe = await recipeRepository.FindAsync(r => r.Id == id);

            User user = await _signInManager.UserManager.GetUserAsync(User);

            Favourite favourite = recipe.Favourites.Where(f => f.User == user).FirstOrDefault();

            if (favourite != null)
            {
                favouriteRepository.Remove(favourite);
            }

            return(PartialView("_FavouriteRecipesPartial", new FavouritesViewModel
            {
                FavouriteRecipes = await recipeRepository.FindAllAsync(r => r.Favourites.Any(f => f.User == user))
            }));
        }
        public async Task <IActionResult> RemoveFromFavourite(Guid id)
        {
            Recipe recipe = await recipeRepository.FindAsync(r => r.Id == id);

            User user = await _signInManager.UserManager.GetUserAsync(User);

            Favourite favourite = recipe.Favourites.Where(f => f.User == user).FirstOrDefault();

            if (favourite != null)
            {
                favouriteRepository.Remove(favourite);
            }

            return(PartialView("_RecipeDetails", new RecipeDetailsViewModel
            {
                Recipe = recipe,
                DidUserRate = recipe.Ratings.Any(rating => rating.User == user),
                IsInUserFavourites = false
            }));
        }