public async Task <IActionResult> ImageList(int id) { var images = from image in _context.Images join imgGallery in _context.ImageGalleries on image.ImageId equals imgGallery.ImageId join galleries in _context.Galleries on imgGallery.GalleryId equals galleries.GalleryId where imgGallery.GalleryId == id orderby imgGallery.Order select image; var filteredImages = await _context.Images.Where(d => images.All(s => s.ImageId != d.ImageId)).ToListAsync(); var imgGal = await _context.ImageGalleries.Where(d => d.GalleryId == id).OrderByDescending(d => d.Order) .FirstOrDefaultAsync(); if (imgGal == null) { imgGal = new ImageGallery() { GalleryId = id, Order = 1 }; } var model = new AddImageToGalleryViewModel() { Images = filteredImages, Gallery = await _context.Galleries.SingleOrDefaultAsync(d => d.GalleryId == id), ImageGallery = imgGal }; return(View(model)); }
public ActionResult AddImageToGallery(AddImageToGalleryViewModel model, int?imageId) { var image = model.Image; var imageFromDb = db.Images.FirstOrDefault(d => d.Url == model.Image.Url); if (imageFromDb == null) { db.Images.Add(image); db.SaveChanges(); imageFromDb = image; } var imgGalleryAlreadyExists = db.ImageGalleries .Where(d => d.GalleryId == model.Gallery.Id).Any(d => d.ImageId == imageFromDb.Id); if (!imgGalleryAlreadyExists) { var imgGallery = new ImageGallery() { GalleryId = model.Gallery.Id, ImageId = imageFromDb.Id, Order = model.ImageGallery.Order }; db.ImageGalleries.Add(imgGallery); db.SaveChanges(); _galleryManager = new GalleryManager(db); _galleryManager.SetOrderOfImageGalleries(imgGallery); } return(RedirectToAction("Edit", new { id = model.Gallery.Id })); }
public async Task <IActionResult> AddImageToGallery(AddImageToGalleryViewModel model, int imageId) { //True when request comes from ImageList.cshtml if (imageId > 0) { model.Image = await _context.Images.SingleOrDefaultAsync(d => d.ImageId == imageId); model.ImageGallery.Order += 1; } var image = model.Image; var imageFromDb = await _context.Images.FirstOrDefaultAsync(d => d.Url == model.Image.Url); if (imageFromDb == null) { await _context.Images.AddAsync(image); await _context.SaveChangesAsync(); imageFromDb = image; } var imgGalleryAlreadyExists = _context.ImageGalleries.Where(d => d.GalleryId == model.Gallery.GalleryId).Any(d => d.ImageId == imageFromDb.ImageId); if (!imgGalleryAlreadyExists) { var imgGallery = new ImageGallery() { GalleryId = model.Gallery.GalleryId, ImageId = imageFromDb.ImageId, Order = model.ImageGallery.Order }; await _context.ImageGalleries.AddAsync(imgGallery); await _context.SaveChangesAsync(); _galleryManager.SetOrderOfImageGalleries(imgGallery); } return(RedirectToAction("Edit", new { id = model.Gallery.GalleryId })); }
public IActionResult AddImageToGallery(int id) { var editedGallery = _context.Galleries.Find(id); if (editedGallery == null) { return(NotFound()); } var orderValue = _context.ImageGalleries.Where(d => d.GalleryId == id).Max(d => d.Order) + 1 ?? 1; var model = new AddImageToGalleryViewModel() { Gallery = editedGallery, ImageGallery = new ImageGallery() { Order = orderValue } }; return(View(model)); }