Пример #1
0
        public ActionResult Edit(BookingFormStub model, bool print = false)
        {
            if (model.ListRentPackageText != null && model.ListRentPackageText != "")
            {
                model.ListRentPackageItem = new JavaScriptSerializer().Deserialize <List <RentPackageFormStub> >(model.ListRentPackageText);
            }
            List <rent_package> pakets;
            RentPackageFormStub rentPackageFS;

            rent dbItem = RepoRent.FindByPk(model.Id);

            if (model.Status != RentStatus.CANCEL)
            {
                ModelState.Remove("CancelNotes");
            }

            if (ModelState.IsValid)
            {
                CustomPrincipal user = User as CustomPrincipal;

                //process customer
                customer cust;
                if (model.IdCustomer.HasValue == false)
                {
                    cust = model.CreateNewCustomer(user.IdOwner.Value);
                    RepoCustomer.Save(cust);
                    model.IdCustomer = cust.id;
                }
                else
                {
                    cust = RepoCustomer.FindByPk(model.IdCustomer.Value);
                    model.UpdateCustomer(cust);

                    RepoCustomer.Save(cust);
                }

                //save to db
                model.UpdateDbObject(dbItem, user);
                RepoRent.Save(dbItem);

                //save rent_package
                pakets = dbItem.rent_package.ToList();
                foreach (rent_package paket in pakets.ToList())
                {
                    RepoRent.DeleteRentPackage(paket);
                }

                if (model.ListRentPackageItem != null && model.ListRentPackageItem.Count() > 0)
                {
                    foreach (RentPackageFormStub single in model.ListRentPackageItem)
                    {
                        RepoRent.SaveListPackage(single.GetDbObject(model.Id, single.IdCarPackage));
                    }
                }



                //rent_package idCarPackage;
                //foreach (RentPackageFormStub Single in model.ListRentPackageItem)
                //{
                //    idCarPackage = pakets.Where(n => n.id_rent == Single.IdRent).FirstOrDefault();
                //    foreach (rent_package paket in pakets)
                //    {
                //        if (idCarPackage.id_car_package != paket.id_car_package)
                //        {
                //            pakets.Remove(paket);
                //            //rentPackageFS.SetDbObject(paket);
                //            //RepoRent.SaveListPackage(paket);
                //        }
                //    }
                //}

                //foreach (rent_package paket in pakets)
                //{
                //    //idCarPackage = pakets.Where(n => n.id_car_package == paket.id_car_package).FirstOrDefault();
                //    rentPackageFS = model.ListRentPackageItem.Where(n => n.IdRent == paket.id_rent).FirstOrDefault();
                //    if (rentPackageFS != null)
                //    {
                //        rentPackageFS.SetDbObject(paket);
                //        RepoRent.SaveListPackage(paket);
                //    }
                //}

                //message
                string template = HttpContext.GetGlobalResourceObject("MyGlobalMessage", "EditSuccess").ToString();
                this.SetMessage("Booking " + model.Name, template);

                //print flag
                if (print)
                {
                    TempData["idPrint"] = dbItem.id;
                }

                return(RedirectToAction("Index"));
            }
            else
            {
                model.Code = dbItem.code;
                FillModelOptions(model);

                ViewBag.name = "Booking " + dbItem.customer.name;

                return(View("Form", model));
            }
        }