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)); }
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)); }
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); }
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); }