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));
        }