public IActionResult CreateFood(CreateFoodViewModel model) { var food = new Matratt() { MatrattNamn = model.Food.MatrattNamn, MatrattTyp = model.Food.MatrattTyp, Beskrivning = model.Food.Beskrivning, Pris = model.Food.Pris }; _context.Matratts.Add(food); _context.SaveChanges(); foreach (var ingredient in model.IngredientsChecked) { var foodIngredient = new MatrattProdukt() { MatrattId = food.MatrattId, ProduktId = ingredient }; _context.MatrattProdukts.Add(foodIngredient); } _context.SaveChanges(); return(View("CreateFoodConfirmation")); }
public IActionResult UpdateFood(ManageFoodViewModel model) { if (ModelState.IsValid) { var original = _context.Matratts.SingleOrDefault(m => m.MatrattId == model.CurrentMatratt.MatrattId); _context.Entry(original).CurrentValues.SetValues(model.CurrentMatratt); _context.SaveChanges(); var originalIngredients = _context.MatrattProdukts.Where(m => m.MatrattId == model.CurrentMatratt.MatrattId).Select(y => y.ProduktId).ToList(); foreach (var item in model.ingredients) { if (item.IsChecked && !originalIngredients.Contains(item.ProduktId)) { MatrattProdukt newItem = new MatrattProdukt(original.MatrattId, item.ProduktId); _context.Add(newItem); } else if (item.IsChecked == false && originalIngredients.Contains(item.ProduktId)) { MatrattProdukt newItem = new MatrattProdukt(original.MatrattId, item.ProduktId); _context.MatrattProdukts.Remove(newItem); } } TempData["EditFood"] = "Maträtt uppdaterad"; _context.SaveChanges(); } else { TempData["EditFood"] = "Maträtt kunde inte uppdateras. Har du inte fyllt i alla uppgifter?"; } return(RedirectToAction("ManageFood")); }
public async Task <IActionResult> AddDish(AddDishViewModel _model) { if (ModelState.IsValid) { await _repository.CreateAsync <Matratt>(_model.Dish); List <Matratt> getMattRatt = await _repository.SelectAll <Matratt>(); var matrattId = getMattRatt.OrderByDescending(m => m.MatrattId).First().MatrattId; foreach (var product in _model.Products) { if (product.Selected == true) { MatrattProdukt smrp = new MatrattProdukt(matrattId, product.ProduktId); await _repository.CreateAsync <MatrattProdukt>(smrp); } } } AddDishViewModel model = new AddDishViewModel( await _repository.SelectAll <MatrattTyp>(), await _repository.SelectAll <Produkt>(), await _repository.SelectAll <Matratt>()); return(View("Dishes", model)); }
public async Task <Matratt> ConvertDishToMatrattAsync(Dish dish, Matratt matratt) { matratt.MatrattNamn = dish.Name; matratt.Beskrivning = dish.Description; matratt.MatrattTyp = int.Parse(dish.DishType); matratt.Pris = dish.Price; var ingredients = dish.IngredientsString.Split(","); matratt.MatrattProdukt.Clear(); foreach (var ingredient in ingredients) { var produkt = await _dbService.GetIngredientFromNameAsync(ingredient.Trim()); var matrattProdukt = new MatrattProdukt { Matratt = matratt, MatrattId = matratt.MatrattId, Produkt = produkt, ProduktId = produkt.ProduktId }; matratt.MatrattProdukt.Add(matrattProdukt); } return(matratt); }
public void UpdateDish(UpdateDishViewModel model) { var matratt = _repository.GetDishById(model.id); var oldmatrattsprodukts = _repository.GetOldIngredienses(matratt.MatrattId); var matrattprodukts = new List <MatrattProdukt>(); matratt.MatrattNamn = model.Matrattnamn; foreach (var item in model.NewSelectedListItem) { var matrattprodukt = new MatrattProdukt(); matrattprodukt.MatrattId = model.id; matrattprodukt.ProduktId = item; matrattprodukts.Add(matrattprodukt); } matratt.MatrattTyp = model.MatrattstypID; matratt.Pris = model.Pris; matratt.MatrattProdukt = matrattprodukts; if (model.NewSelectedListItem.Count == 0) { matratt.MatrattProdukt = oldmatrattsprodukts.ToList(); _repository.UpdateOnlymatratt(matratt); } else { _repository.DeleteMatrattProduktList(oldmatrattsprodukts); _repository.Update(matratt); } }
public async Task <bool> AddIngredientToDish(string name, int matrattId) { // Get the current dish var dish = await GetDishAsync(matrattId); // Get all ingredients in DB var produkter = await GetDishIngredientsAsync(); MatrattProdukt matrattProdukt; // Check if the name doesn't already exists in the DB if (!produkter.Any(p => string.Equals(p.ProduktNamn, name, StringComparison.CurrentCultureIgnoreCase))) { // Name doesn't exist, create it and attach the id to the current dish through connection table var newProdukt = new Produkt { ProduktNamn = name.ToFirstLetterUpper() }; _context.Add(newProdukt); _context.SaveChanges(); // Attach tne new produkt to MatrattProdukt. matrattProdukt = new MatrattProdukt { MatrattId = matrattId, ProduktId = newProdukt.ProduktId }; dish.MatrattProdukt.Add(matrattProdukt); _context.Entry(dish).State = EntityState.Modified; var result = await _context.SaveChangesAsync(); return(result == 1); } // Check if the dish doesn't have that produkt already if (!dish.MatrattProdukt.Any(p => string.Equals(p.Produkt.ProduktNamn, name, StringComparison.CurrentCultureIgnoreCase))) { // Take the produkt from the list of existing produkts and attach it to the dish. matrattProdukt = new MatrattProdukt { MatrattId = matrattId, ProduktId = produkter.First(p => string.Equals(p.ProduktNamn, name, StringComparison.CurrentCultureIgnoreCase)).ProduktId }; _context.MatrattProdukt.Add(matrattProdukt); _context.Entry(dish).State = EntityState.Modified; var result = await _context.SaveChangesAsync(); return(result == 1); } return(false); }
public IActionResult AddDish(AddDishViewModel model) { var dish = new Matratt(); if (!ModelState.IsValid) { model.DishTypes = GetDishTypes(); model.IngredientCheckBoxes = GetCheckBoxDataForDishes(); return(View(model)); } try { dish.Beskrivning = model.CurrentMatratt.Beskrivning; dish.Pris = model.CurrentMatratt.Pris; dish.MatrattNamn = model.CurrentMatratt.MatrattNamn; dish.MatrattTypId = int.Parse(model.CurrentMatrattDishTypeID); _context.Matratts.Add(dish); _context.SaveChanges(); } catch (Exception) { ViewBag.Message = "Please correct inputs"; return(View(model)); } foreach (var item in model.IngredientCheckBoxes) { if (item.IsSelected == true) { MatrattProdukt newProd = new MatrattProdukt(); newProd.MatrattId = dish.MatrattId; newProd.ProduktId = item.IngredientID; _context.MatrattProdukts.Add(newProd); _context.SaveChanges(); } } ViewBag.Message = "Dish saved to the menu!"; return(RedirectToAction("EditFoodMenu", "Admin")); }
private void AddIngredientsToDish(Matratt dish, List <IngredientViewModel> ingredientCheckBoxes) { foreach (var item in ingredientCheckBoxes) { if (item.IsSelected == true) { MatrattProdukt mr = new MatrattProdukt(); mr.MatrattId = dish.MatrattId; mr.ProduktId = item.IngredientID; _context.MatrattProdukts.Add(mr); _context.SaveChanges(); } } }
public async Task <IActionResult> SaveNewProduct(AdminProductNewDish dish) { if (ModelState.IsValid) { List <Produkt> ingredientList; if (HttpContext.Session.GetString("NewIngredients") == null) { string error = "Inga ingridienser kopplade till maträtten. Försök igen"; return(View("SaveProduct", error)); } //Hämta listan från Sessionen var serializedValue = HttpContext.Session.GetString("NewIngredients"); ingredientList = JsonConvert.DeserializeObject <List <Produkt> >(serializedValue); var dishName = dish.NewDish.MatrattNamn; dishName = char.ToUpper(dishName[0]) + dishName.Substring(1); var newProduct = new Matratt() { MatrattNamn = dishName, Beskrivning = dish.NewDish.Beskrivning, MatrattTyp = dish.Type, Pris = dish.NewDish.Pris }; _context.Matratt.Add(newProduct); foreach (var item in ingredientList) { var newConn = new MatrattProdukt() { MatrattId = newProduct.MatrattId, ProduktId = item.ProduktId }; _context.MatrattProdukt.Add(newConn); } _context.SaveChanges(); return(View("SaveProduct", "Ny produkt sparad!")); } return(RedirectToAction("NewProduct")); }
public IActionResult Update(Matratt dish, int?dishId, int?removeIngredient, int?addIngredient) { //Remove Ingredient if (removeIngredient != null) { _context.MatrattProdukt.Remove(_context.MatrattProdukt.SingleOrDefault(x => x.MatrattId == dishId && x.ProduktId == removeIngredient)); _context.SaveChanges(); return(RedirectToAction("EditProduct", new { id = dishId })); } //AddIngredient if (addIngredient != null && dishId != null) { var newValue = new MatrattProdukt() { MatrattId = (int)dishId, ProduktId = (int)addIngredient }; _context.MatrattProdukt.Add(newValue); _context.SaveChanges(); return(RedirectToAction("EditProduct", new { id = dishId })); } //Save Dish var changeDish = _context.Matratt.Single(d => d.MatrattId == dishId); dish.MatrattNamn = char.ToUpper(dish.MatrattNamn[0]) + dish.MatrattNamn.Substring(1); changeDish.MatrattNamn = dish.MatrattNamn; changeDish.Beskrivning = dish.Beskrivning; changeDish.Pris = dish.Pris; _context.SaveChanges(); return(RedirectToAction("ViewProducts")); }
public async Task <IActionResult> UpdateDish(EditDishViewModel model, List <int> selectedProducts) { Matratt dish = await _repository.SelectById <Matratt>(model.Dish.MatrattId); dish.MatrattNamn = model.Dish.MatrattNamn; dish.Beskrivning = model.Dish.Beskrivning; dish.Pris = model.Dish.Pris; dish.MatrattTyp = model.Dish.MatrattTyp; await _repository.UpdateAsync <Matratt>(dish); _repository.DeleteMattrattJ(dish.MatrattId); foreach (var product in selectedProducts) { MatrattProdukt smrp = new MatrattProdukt(dish.MatrattId, product); await _repository.CreateAsync <MatrattProdukt>(smrp); } return(RedirectToAction("Dishes")); }
public void CreateDish(NewDishViewModel model) { var matratt = new Matratt() { MatrattNamn = model.Matratt.MatrattNamn, Beskrivning = model.Matratt.Beskrivning, MatrattTyp = model.Matratt.MatrattTyp, Pris = model.Matratt.Pris }; _repository.Create(matratt); var matrattbyid = _repository.GetDishByName(model.Matratt.MatrattNamn); foreach (var item in model.SelectedListItem) { var matrattprodukt = new MatrattProdukt(); matrattprodukt.MatrattId = matrattbyid.MatrattId; matrattprodukt.ProduktId = item; matrattbyid.MatrattProdukt.Add(matrattprodukt); } _repository.UpdateDishIngredienses(matrattbyid.MatrattProdukt.ToList()); }
public async Task <bool> AddIngredient(int dishID, int ingredientID) { var result = false; var dishIngredient = new MatrattProdukt { MatrattId = dishID, ProduktId = ingredientID }; var ingredientExists = _context.MatrattProdukt .Any(x => x.MatrattId == dishID && x.ProduktId == ingredientID); if (ingredientExists == false) { _context.MatrattProdukt.Add(dishIngredient); await _context.SaveChangesAsync(); result = true; return(result); } return(result); }
public IActionResult AddFood(ManageFoodViewModel model) { var foodAldreadyExist = _context.Matratts.Where(m => m.MatrattNamn == model.CurrentMatratt.MatrattNamn).ToList(); if (ModelState.IsValid) { if (foodAldreadyExist.Count == 0) { _context.Add(model.CurrentMatratt); _context.SaveChanges(); TempData["AddFood"] = "Ny maträtt tillagd"; var selectedIngredients = model.ingredients.Where(i => i.IsChecked == true).ToList(); var newFoodId = _context.Matratts.SingleOrDefault(m => m.MatrattNamn == model.CurrentMatratt.MatrattNamn).MatrattId; foreach (var ingredient in selectedIngredients) { MatrattProdukt newItem = new MatrattProdukt(); newItem.MatrattId = newFoodId; newItem.ProduktId = ingredient.ProduktId; _context.Add(newItem); } _context.SaveChanges(); return(RedirectToAction("ManageFood")); } else { TempData["AddFood"] = "Maträtt kunde inte läggas till. Namn på maträtt upptaget?"; return(RedirectToAction("ManageFood")); } } return(RedirectToAction("ManageFood")); }