コード例 #1
0
        public async Task <IActionResult> Delete(Car car)
        {
            try {
                if (await _context.Cars.AnyAsync(c => c.Id == car.Id))
                {
                    var imagesDirectory = $"{_appEnvironment.WebRootPath}/img/cars/{car.Id}";

                    if (Directory.Exists(imagesDirectory))
                    {
                        DirectoryInfo dirInfo = new(imagesDirectory);
                        dirInfo.Delete(true);

                        var carImages = await _context.CarImages.Where(ci => ci.CarId == car.Id).ToListAsync();

                        if (carImages.Count > 0)
                        {
                            _context.RemoveRange(carImages);
                        }
                    }

                    _context.Cars.Remove(car);
                    await _context.SaveChangesAsync();
                }

                return(RedirectToAction(nameof(Index)));
            }
            catch (Exception) {
                return(RedirectToAction(nameof(Delete), new { id = car.Id, linkedEntitiesError = true }));
            }


            //var car = await _context.Cars.FindAsync(id);

            //var imagesDirectory = $"{_appEnvironment.WebRootPath}/img/cars/{id}";

            //if (Directory.Exists(imagesDirectory)) {
            //    DirectoryInfo dirInfo = new(imagesDirectory);
            //    dirInfo.Delete(true);

            //    var carImages = await _context.CarImages.Where(ci => ci.CarId == id).ToListAsync();

            //    if (carImages.Count > 0) {
            //        _context.RemoveRange(carImages);
            //    }

            //}

            //_context.Cars.Remove(car);
            //await _context.SaveChangesAsync();
            //return RedirectToAction(nameof(Index));
        }