public async Task <IActionResult> Edit(EventCreateEditViewModel viewModel) { if (ModelState.IsValid) { try { var currentFileName = viewModel.Event.ImgPath; if (viewModel.Img != null && viewModel.Img.FileName != currentFileName) { if (currentFileName != null) { var images = Directory.GetFiles("wwwroot/images"); var fileToDelete = images.First(i => i.Contains(currentFileName)); System.IO.File.Delete(fileToDelete); } var uniqueFileName = GetUniqueFileName(viewModel.Img.FileName); var imageDirectory = Path.Combine(_webHostEnvironment.WebRootPath, "images"); var filePath = Path.Combine(imageDirectory, uniqueFileName); using (var myFile = new FileStream(filePath, FileMode.Create)) { viewModel.Img.CopyTo(myFile); } viewModel.Event.ImgPath = uniqueFileName; } _context.Update(viewModel.Event); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!EventExists(viewModel.Event.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(viewModel)); }
// GET: Events/Edit/5 public async Task <IActionResult> Edit(int?id) { if (id == null) { return(NotFound()); } var @event = await _context.Events.FindAsync(id); var viewModel = new EventCreateEditViewModel() { Event = @event }; if (@event == null) { return(NotFound()); } return(View(viewModel)); }
public async Task <IActionResult> Create(EventCreateEditViewModel viewModel) { if (ModelState.IsValid) { if (viewModel.Img != null) { var uniqueFileName = GetUniqueFileName(viewModel.Img.FileName); var imageDirectory = Path.Combine(_webHostEnvironment.WebRootPath, "images"); var filePath = Path.Combine(imageDirectory, uniqueFileName); using (var myFile = new FileStream(filePath, FileMode.Create)) { viewModel.Img.CopyTo(myFile); } viewModel.Event.ImgPath = uniqueFileName; } _context.Add(viewModel.Event); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(viewModel)); }
// GET: Events/Create public IActionResult Create() { var viewModel = new EventCreateEditViewModel(); return(View(viewModel)); }