Example #1
0
        public IActionResult EditFoodItem(EditFoodItemViewModel model)
        {
            if (this.ModelState.IsValid)
            {
                this.contentService.EditFoodItem(model);
                return(RedirectToAction("Edit_Food_Items",
                                        new { currentPage = model.CurrentPage, searchText = model.SearchText, initialOpen = "false" }));
            }

            var reloadModel = this.menuService.GetMenuItems(this.GetType(), typeof(HttpGetAttribute), typeof(AuthorizeAttribute), AreaName, "OpenFoodItemForEditing", model);

            return(View("ContentMenu", reloadModel));
        }
Example #2
0
        public async Task <IActionResult> Edit(int id, EditFoodItemViewModel model)
        {
            if (id != model.FoodItem.FoodItemId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    await _foodItemService.UpdateFoodItem(model.FoodItem, model.SelectedFoodItemTypeId, model.SelectedProductsIds.ToList());
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!await FoodItemExists(id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            model.AvailableFoodItemType = new SelectList(
                await _foodItemTypeRepository.GetAll(),
                nameof(FoodItemType.FoodItemTypeId),
                nameof(FoodItemType.Description),
                model.FoodItem.FoodItemTypeId);

            model.AvailableProducts = new MultiSelectList(
                await _productRepository.GetAll(),
                nameof(Product.ProductId), nameof(Product.ProductNamn),
                model.FoodItem.FoodItemProducts.Select(p => p.ProductId));
            return(View(model));
        }
Example #3
0
        public FoodItem EditFoodItem(EditFoodItemViewModel model)
        {
            var foodItem = this.context.FoodItems.Include(fi => fi.FoodItemMicroElements).ThenInclude(fime => fime.MicroElement)
                           .Include(fi => fi.FoodItemMacroElements).ThenInclude(fime => fime.MacroElement)
                           .FirstOrDefault(fi => fi.Id == model.Id);

            if (foodItem == null)
            {
                return(null);
            }

            foreach (var macroElementViewModel in model.MacroElements)
            {
                var macroElementInFoodItem = foodItem.FoodItemMacroElements.FirstOrDefault(fime =>
                                                                                           fime.MacroElement.Name == macroElementViewModel.Name);
                if (macroElementInFoodItem != null)
                {
                    macroElementInFoodItem.AmountInGrams = macroElementViewModel.AmountInGramsPer100Grams;
                }
                else
                {
                    var newFoodItemMacroElement = new FoodItemMacroElement
                    {
                        FoodItem      = foodItem,
                        MacroElement  = this.context.MacroElements.First(me => me.Name == macroElementViewModel.Name),
                        AmountInGrams = macroElementViewModel.AmountInGramsPer100Grams
                    };

                    foodItem.FoodItemMacroElements.Add(newFoodItemMacroElement);
                }
            }

            foreach (var microElementViewModel in model.MicroElements)
            {
                var microElementInFoodItem = foodItem.FoodItemMicroElements.FirstOrDefault(fime =>
                                                                                           fime.MicroElement.Name == microElementViewModel.Name);
                if (microElementInFoodItem != null)
                {
                    microElementInFoodItem.AmountInMilligrams = microElementViewModel.AmountInMilligramsPer100Grams;
                }
                else
                {
                    var newFoodItemMicroElement = new FoodItemMicroElement
                    {
                        FoodItem           = foodItem,
                        MicroElement       = this.context.MicroElements.First(me => me.Name == microElementViewModel.Name),
                        AmountInMilligrams = microElementViewModel.AmountInMilligramsPer100Grams
                    };

                    foodItem.FoodItemMicroElements.Add(newFoodItemMicroElement);
                }
            }

            foodItem.Name        = model.Name;
            foodItem.Description = model.Description;

            if (model.NewImage != null)
            {
                string newImageLocation = this.imagesService.RecreateImage(model.NewImage, this.GetType().Name.Replace("Service", string.Empty), model.ImageLocation, model.Id);
                foodItem.ImageLocation = newImageLocation;
            }

            context.SaveChanges();
            return(foodItem);
        }
Example #4
0
        public EditFoodItemViewModel GetFoodItemForEditing(string foodItemId)
        {
            var foodItem = this.context.FoodItems.Include(fi => fi.FoodItemMicroElements).ThenInclude(fime => fime.MicroElement)
                           .Include(fi => fi.FoodItemMacroElements).ThenInclude(fime => fime.MacroElement)
                           .FirstOrDefault(fi => fi.Id == foodItemId);

            if (foodItem == null)
            {
                return(null);
            }

            var macroElements = new List <EditFoodItemViewModel.MacroElementViewModel>();
            var microElements = new List <EditFoodItemViewModel.MicroElementViewModel>();

            var macroElementsNames = this.GetMacroElementsNames();
            var microElementsNames = this.GetMicroElementsNames();

            foreach (var microElementName in microElementsNames)
            {
                var microElementModel = new EditFoodItemViewModel.MicroElementViewModel
                {
                    Name = microElementName
                };

                if (foodItem.FoodItemMicroElements.Any(fime => fime.MicroElement.Name == microElementName))
                {
                    microElementModel.AmountInMilligramsPer100Grams = foodItem.FoodItemMicroElements
                                                                      .Single(fime => fime.MicroElement.Name == microElementName).AmountInMilligrams;
                }

                microElements.Add(microElementModel);
            }

            foreach (var macroElementName in macroElementsNames)
            {
                var macroElementModel = new EditFoodItemViewModel.MacroElementViewModel
                {
                    Name = macroElementName
                };

                if (foodItem.FoodItemMacroElements.Any(fime => fime.MacroElement.Name == macroElementName))
                {
                    macroElementModel.AmountInGramsPer100Grams = foodItem.FoodItemMacroElements
                                                                 .Single(fime => fime.MacroElement.Name == macroElementName).AmountInGrams;
                }

                macroElements.Add(macroElementModel);
            }

            var foodItemEditModel = new EditFoodItemViewModel
            {
                Id            = foodItem.Id,
                Name          = foodItem.Name,
                Description   = foodItem.Description,
                MacroElements = macroElements,
                MicroElements = microElements,
                ImageLocation = foodItem.ImageLocation
            };

            return(foodItemEditModel);
        }