コード例 #1
0
        public ActionResult EditVehicle(VehicleAdminVM vavm)
        {
            vavm.SetAllListItems();
            vavm.Makes  = new SelectList(makeRepo.GetAll(), "MakeId", "MakeName");
            vavm.Models = new SelectList(modelRepo.GetAll(), "ModelId", "ModelName");
            IEnumerable <Make>  allMakes  = makeRepo.GetAll();
            IEnumerable <Model> allModels = modelRepo.GetAll();

            vavm.Vehicle.Model = modelRepo.GetById(vavm.Vehicle.ModelId);

            if (!allMakes.Any(m => m.MakeId == vavm.Vehicle.MakeId))
            {
                ModelState.AddModelError("Vehicle.MakeId", "Invalid Make selection");
            }
            if (!allModels.Any(m => m.ModelId == vavm.Vehicle.ModelId))
            {
                ModelState.AddModelError("Vehicle.ModelId", "Invalid Model selection");
            }
            if (vavm.Vehicle.Model == null || vavm.Vehicle.MakeId != vavm.Vehicle.Model.MakeId)
            {
                ModelState.AddModelError("Vehicle.ModelId", "Model not available for selected Make");
            }


            if (ModelState.IsValid)
            {
                if (vavm.UploadedPic != null && vavm.UploadedPic.ContentLength > 0)
                {
                    string type = "." + vavm.UploadedPic.ContentType.Substring(6);
                    vavm.FileType = type;
                    if (type == ".png" || type == ".jpg" || type == ".jpeg")
                    {
                        //add in other form validation

                        string path = Path.Combine(Server.MapPath("~/Images/"), "inventory-" + vavm.Vehicle.VehicleId + ".png");
                        if (System.IO.File.Exists(path))
                        {
                            System.IO.File.Delete(path);
                        }

                        vavm.UploadedPic.SaveAs(path);
                    }
                }

                vRepo.Update(vavm.Vehicle);
                return(RedirectToAction("Vehicles"));
            }
            return(View(vavm));
        }