Exemple #1
0
        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 }));
        }
Exemple #3
0
        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 }));
        }
Exemple #4
0
        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));
        }