public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { var vm = new LagerWarenViewModel(); using (var db = new ApplicationDbContext()) { vm.Waren = db.Waren.ToList(); vm.Lager = db.Lager.Find(bindingContext .ValueProvider.GetValue("Lager.ID").ConvertTo(typeof(Guid))); vm.LagerWaren = new List <LagerWaren>(); // Waren am Lager anpassen var formVars = HttpContext.Current.Request.Form; foreach (string formKey in formVars) { if (formKey.StartsWith("menge_")) { var warenId = formKey.Split('_')[1]; var menge = formVars[formKey]; if (menge != "0" && !string.IsNullOrEmpty(menge) && vm.Lager != null) { vm.LagerWaren.Add(new LagerWaren { WareID = Guid.Parse(warenId), LagerID = vm.Lager.ID, Menge = Convert.ToInt32(menge) }); } } } } return(vm); }
public ActionResult AddProducts(Guid id) { Lager lager = _db.Lager.Find(id); if (lager == null) { return(HttpNotFound()); } var vm = new LagerWarenViewModel { Lager = lager, Waren = _db.Waren.ToList() }; return(View("LagerWaren", vm)); }
public ActionResult AddProducts([ModelBinder(typeof(LagerWarenModelBinder))] LagerWarenViewModel model) { var lager = _db.Lager.Find(model.Lager.ID); if (lager == null) { return(HttpNotFound()); } // Alle vorherigen LagerWaren Beziehungen löschen (SoftDelete) var lagerWarenIdList = lager.LagerWaren.Select(x => x.LagerWarenID).ToList(); foreach (var lagerWaren in lagerWarenIdList) { var lagerWare = _db.LagerWaren.FirstOrDefault(x => x.LagerWarenID == lagerWaren); if (lagerWare != null) { _db.LagerWaren.Remove(lagerWare); } } // Neue LagerWaren hinzufügen foreach (var lagerWaren in model.LagerWaren) { _db.LagerWaren.Add(new LagerWaren { LagerID = lagerWaren.LagerID, WareID = lagerWaren.WareID, Menge = lagerWaren.Menge }); } _db.SaveChanges(); return(RedirectToAction("Details", new { id = model.Lager.ID })); }