public async Task <IActionResult> AddEditImages(PublicationImageViewModel model) { // TODO: fix error when refresh page after adding an image (add twice) var publication = await _dataContext.Publications .FindAsync(model.PublicationId); if (model.ImageFile != null) { _dataContext.PublicationImages.Add(new PublicationImage { Description = model.Description, ImageUrl = await _imageHelper.UploadImageAsync(model.ImageFile), Publication = publication }); try { await _dataContext.SaveChangesAsync(); } catch (Exception ex) { ModelState.AddModelError(string.Empty, ex.Message); return(View(model)); } } model.PublicationImages = _dataContext.PublicationImages .Where(pi => pi.Publication == publication).ToList(); return(View(model)); }
public async Task <IActionResult> AddEditImages(int?id) { if (id == null || !PublicationExists(id.Value)) { return(NotFound()); } var publication = await _dataContext.Publications .Include(p => p.PublicationImages) .Where(p => p.Id == id.Value) .FirstOrDefaultAsync(); if (!await UserHasPermissionsOnPublicationAsync(publication)) { return(RedirectToAction("NotAuthorized", "Account")); } PublicationImageViewModel model = new PublicationImageViewModel { PublicationId = id.Value, PublicationTitle = publication.Title, PublicationImages = publication.PublicationImages == null ? null : publication.PublicationImages.ToList() }; return(View(model)); }