/// <summary>
 /// Initializes a new instance of the <see cref="ProducersAndMaterialsTabItemViewModel"/> class.
 /// </summary>
 /// <param name="modalDialogProvider">The modal dialog service.</param>
 /// <param name="serviceFactory">The service factory.</param>
 public RecipesTabItemViewModel(IMainViewModel mainViewModel, IModalDialogProvider modalDialogProvider, IServiceFactory serviceFactory)
     : base(mainViewModel, modalDialogProvider, serviceFactory)
 {
     RecipeDetailsViewModel = new RecipeDetailsViewModel(MainViewModel, ModalDialogProvider, ServiceFactory);
       RecipeListViewModel = new RecipeListViewModel(MainViewModel, RecipeDetailsViewModel, ModalDialogProvider, ServiceFactory);
       RecipeComponentDetailsViewModel = new RecipeComponentDetailsViewModel(MainViewModel, ModalDialogProvider, ServiceFactory);
       RecipeComponentListViewModel = new RecipeComponentListViewModel(MainViewModel, RecipeComponentDetailsViewModel, ModalDialogProvider, ServiceFactory);
 }
        public async Task <IActionResult> SetRating(RecipeDetailsViewModel recipeDetailsViewModel)
        {
            Recipe recipe = await recipeRepository.FindAsync(r => r.Id == recipeDetailsViewModel.Recipe.Id);

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

            Rating rating = new Rating
            {
                Recipe      = recipe,
                Comment     = recipeDetailsViewModel.Rating.Comment,
                RatingValue = recipeDetailsViewModel.Rating.RatingValue,
                User        = user
            };

            recipe.Ratings.Add(rating);
            recipe.AverageRating = recipe.Ratings.Average(r => r.RatingValue);
            recipeRepository.Update(recipe);

            return(PartialView("_RecipeDetails", new RecipeDetailsViewModel {
                Recipe = recipe,
                DidUserRate = true
            }));
        }
Пример #3
0
        public IActionResult Details(int id)
        {
            var recipe = recipeService.GetRecipe(id);

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

            var ingredients = context.IngredientsInRecipes
                              .Include(i => i.Ingredient)
                              .Where(i => i.RecipeId == id)
                              .Select(ingredient => new IngredientWithQuantity()
            {
                Ingredient = ingredient.Ingredient,
                Quantity   = ingredient.Quantity
            });

            var recipePicture = recipeService.GetRecipePicture(recipe.Id);

            if (recipePicture != null)
            {
                ViewData["RecipePicturePath"] = recipeService.GetPicturePath(recipePicture);
            }

            var currentUserId = userManager.GetUserId(User);

            var vm = new RecipeDetailsViewModel()
            {
                Recipe      = recipe,
                Ingredients = ingredients,
                IsFavouritedByCurrentUser = recipeService.CheckIfRecipeIsFavouritedByUser(recipe, currentUserId),
                NumberOfLikes             = recipeService.GetNumberOfLikes(id)
            };

            return(View(vm));
        }
 public DetailsPage(Recipe recipe)
 {
     InitializeComponent();
     BindingContext = new RecipeDetailsViewModel(recipe);
 }
 public RecipeDetailView(string Name, string Details, string ImageUrl, string Description, string Time, string Calories, string Servings)
 {
     InitializeComponent();
     BindingContext = new RecipeDetailsViewModel(Name, Details, ImageUrl, Description, Time, Calories, Servings, Navigation);
 }
        public async Task <IActionResult> Remove(RecipeDetailsViewModel recipesDetailsViewModel)
        {
            await this.recipesService.DeleteByIdAsync(recipesDetailsViewModel.Id);

            return(this.RedirectToAction("GetAll", "Recipes", new { area = "Administration" }));
        }