protected void UpdateImageLocales(GalleryImages gallery, ConfigurationGalleryImagesModel model)
        {
            foreach (var localized in model.Locales)
            {
                _localizedEntityService.SaveLocalizedValue(gallery,
                                                           x => x.Name,
                                                           localized.Name,
                                                           localized.LanguageId);

                _localizedEntityService.SaveLocalizedValue(gallery,
                                                           x => x.Description,
                                                           localized.Description,
                                                           localized.LanguageId);
            }
        }
        public ActionResult CreateImage(ConfigurationGalleryImagesModel model)
        {
            if (ModelState.IsValid)
            {
                //var gallery = model.ToEntity();
                var gallery = new GalleryImages
                {
                    Name         = model.Name,
                    Description  = model.Description,
                    DisplayOrder = model.DisplayOrder,
                    PictureId    = model.PictureId,
                    UpdatedOnUtc = DateTime.UtcNow,
                    CreatedOnUtc = DateTime.UtcNow,
                };

                if (model.SelectedOptions != null)
                {
                    foreach (var option in model.SelectedOptions)
                    {
                        var gal = _galleryService.GetGalleryById(int.Parse(option));

                        if (gallery.Galleries.Count(g => g.Id == gallery.Id) == 0)
                        {
                            gallery.Galleries.Add(gal);
                        }
                    }
                }
                _galleryService.InsertGalleryImage(gallery);

                //locales
                UpdateImageLocales(gallery, model);
                //update picture seo file name
                UpdateImagePictureSeoNames(gallery);

                SuccessNotification(_localizationService.GetResource("Plugin.Widgets.Gallery.GalleryConfigureController.ImageAdded"));
            }
            var galleries = _galleryService.GetAllGalleries();

            foreach (var gallery in galleries)
            {
                model.ListGalleries.Add(new SelectListItem {
                    Text = gallery.Name, Value = gallery.Id.ToString(CultureInfo.InvariantCulture)
                });
            }

            return(View("~/Plugins/Widgets.Gallery/Views/GalleryConfigure/CreateImage.cshtml", model));
        }
        public ActionResult CreateImage()
        {
            var model = new ConfigurationGalleryImagesModel();

            var galleries = _galleryService.GetAllGalleries();

            foreach (var gallery in galleries)
            {
                model.ListGalleries.Add(new SelectListItem {
                    Text = gallery.Name, Value = gallery.Id.ToString(CultureInfo.InvariantCulture)
                });
            }

            //locales
            AddLocales(_languageService, model.Locales);
            return(View("~/Plugins/Widgets.Gallery/Views/GalleryConfigure/CreateImage.cshtml", model));
        }
        public ActionResult EditImage(ConfigurationGalleryImagesModel model)
        {
            var gallery = _galleryService.GetGalleryImageById(model.Id);

            if (gallery == null)
            {
                //No gallery found with the specified id
                return(RedirectToAction("ImagesList"));
            }

            var galleries = _galleryService.GetAllGalleries();

            model.ListGalleries.Add(new SelectListItem {
                Text = "Remove from all galleries", Value = "-1"
            });
            foreach (var g in galleries)
            {
                if (gallery.Galleries.Contains(g))
                {
                    model.ListGalleries.Add(new SelectListItem
                    {
                        Text     = g.Name,
                        Value    = g.Id.ToString(CultureInfo.InvariantCulture),
                        Selected = true
                    });
                }
                else
                {
                    model.ListGalleries.Add(new SelectListItem
                    {
                        Text     = g.Name,
                        Value    = g.Id.ToString(CultureInfo.InvariantCulture),
                        Selected = false
                    });
                }
            }


            if (ModelState.IsValid)
            {
                int prevPictureId = gallery.PictureId;
                gallery = model.ToEntity(gallery);

                gallery.Galleries.Clear();
                if (model.SelectedOptions != null)
                {
                    if (!model.SelectedOptions.Contains("-1"))
                    {
                        foreach (var option in model.SelectedOptions)
                        {
                            var gal = _galleryService.GetGalleryById(int.Parse(option));
                            gallery.Galleries.Add(gal);
                        }
                    }
                }
                gallery.UpdatedOnUtc = DateTime.UtcNow;
                _galleryService.UpdateGalleryImage(gallery);
                //locales
                UpdateImageLocales(gallery, model);
                //delete an old picture (if deleted or updated)
                if (prevPictureId > 0 && prevPictureId != gallery.PictureId)
                {
                    var prevPicture = _pictureService.GetPictureById(prevPictureId);
                    if (prevPicture != null)
                    {
                        _pictureService.DeletePicture(prevPicture);
                    }
                }
                //update picture seo file name
                UpdateImagePictureSeoNames(gallery);

                //activity log

                SuccessNotification(_localizationService.GetResource("Plugin.Widgets.Gallery.GalleryConfigureController.ImageUpdated"));
            }

            return(View("~/Plugins/Widgets.Gallery/Views/GalleryConfigure/EditImage.cshtml", model));
        }
 public static GalleryImages ToEntity(this ConfigurationGalleryImagesModel model, GalleryImages destination)
 {
     return(Mapper.Map(model, destination));
 }
 public static GalleryImages ToEntity(this ConfigurationGalleryImagesModel model)
 {
     return(Mapper.Map <ConfigurationGalleryImagesModel, GalleryImages>(model));
 }