Exemplo n.º 1
0
        [ValidateAntiForgeryToken] //protect against CSRF attacks
        public async Task <IActionResult> Edit(int id, Car car)
        {
            if (ModelState.IsValid)
            {
                var carId = await contex.Cars.Where(x => x.Id != id).FirstOrDefaultAsync(x => x.Id == car.Id);

                if (carId != null)
                {
                    ModelState.AddModelError("", "The car already exists.");
                    return(View(car));
                }

                if (car.ImageUpload != null)
                {
                    string uploadsDir = Path.Combine(webHostEnvironment.WebRootPath, "media/cars");

                    if (!string.Equals(car.Image, "noimagecar.png") && car.Image != null)
                    {
                        string oldImagePath = Path.Combine(uploadsDir, car.Image);
                        if (System.IO.File.Exists(oldImagePath))
                        {
                            System.IO.File.Delete(oldImagePath);
                        }
                    }

                    string     imageName = Guid.NewGuid().ToString() + "_" + car.ImageUpload.FileName;
                    string     filePath  = Path.Combine(uploadsDir, imageName);
                    FileStream fs        = new FileStream(filePath, FileMode.Create);
                    await car.ImageUpload.CopyToAsync(fs);

                    fs.Close();
                    car.Image = imageName;
                }


                contex.Update(car);
                await contex.SaveChangesAsync();

                TempData["Success"] = "The car has been updated!";

                return(RedirectToAction("Index"));
            }

            return(View(car));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> Edit(int id, Lease lease)
        {
            ViewBag.CarId  = new SelectList(contex.Cars.OrderBy(x => x.Id), "Id", "Id");
            ViewBag.UserId = new SelectList(contex.Users.OrderBy(x => x.Id), "UserName", "UserName");

            if (ModelState.IsValid)
            {
                var user = await contex.Users.FirstOrDefaultAsync(x => x.UserName == lease.UserUserName);

                var car = await contex.Cars.FirstOrDefaultAsync(x => x.Id == lease.CarId);

                if (lease.StartDate > lease.EndDate)
                {
                    ModelState.AddModelError("", "The lease End Date has to be larger than Start date");
                    return(View(lease));
                }
                if (lease.StartDate == lease.EndDate)
                {
                    ModelState.AddModelError("", "Minimum lease time is 1 day");
                    return(View(lease));
                }
                if (lease.Payment == null)
                {
                    ModelState.AddModelError("", "Select payment option");
                    return(View(lease));
                }

                lease.CarBrand     = car.Brand;
                lease.CarColor     = car.Color;
                lease.CarRentPrice = car.RentPrice;
                lease.UserId       = user.Id;
                lease.UserUserName = user.UserName;
                lease.UserName     = user.Name;

                contex.Update(lease);
                await contex.SaveChangesAsync();

                TempData["Success"] = "The lease has been updated!";

                return(RedirectToAction("Index"));
            }

            return(View(lease));
        }