Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        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 }));
        }