示例#1
0
        public IActionResult SlideList(SlideSearchModel searchModel)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageWidgets))
            {
                return(AccessDeniedDataTablesJson());
            }

            var slides    = _slideService.GetAllSlides(showHidden: true, pageIndex: searchModel.Page - 1, pageSize: searchModel.PageSize);
            var gridModel = new SlideSearchModel.SlidePagedListModel().PrepareToGrid(searchModel, slides, () =>
            {
                return(slides.Select(slide =>
                {
                    var picture = _pictureService.GetPictureById(slide.PictureId.GetValueOrDefault(0));
                    return new SlideSearchModel.SlideListItemModel()
                    {
                        Id = slide.Id,
                        Picture = _pictureService.GetPictureUrl(slide.PictureId.GetValueOrDefault(0), 300),
                        Hyperlink = slide.HyperlinkAddress,
                        StartDateUtc = slide.StartDateUtc,
                        EndDateUtc = slide.EndDateUtc,
                        DisplayOrder = slide.DisplayOrder,
                        Published = slide.Published
                    };
                }));
            });

            return(Json(gridModel));
        }
        /// <summary>
        /// Uninstall plugin
        /// </summary>
        public override void Uninstall()
        {
            var allSlides = _slideService.GetAllSlides(storeId: _storeContext.CurrentStore.Id);

            //delete slide localization resources and pictures
            foreach (var slide in allSlides)
            {
                _garbageManager.DeleteSlidePicture(slide);
                _garbageManager.DeleteSlideLocalizedValues(slide);
            }

            //settings
            _settingService.DeleteSetting <qBoSliderSettings>();

            base.Uninstall();
        }
示例#3
0
        public IViewComponentResult Invoke()
        {
            var settings = _settingService.LoadSetting <qBoSliderSettings>(_storeContext.CurrentStore.Id);
            var customer = _workContext.CurrentCustomer;

            //1.0.5 all with Alc
            var customerRoleIds     = _customerService.GetCustomerRoleIds(customer);
            var customerRolesString = string.Join(",", customerRoleIds);
            //create cache key
            var cacheKey = _cacheKeyService.PrepareKeyForDefaultCache(ModelCacheEventConsumer.PICTURE_URL_MODEL_KEY, _workContext.WorkingLanguage.Id, _storeContext.CurrentStore.Id, DateTime.UtcNow.ToShortDateString(), customerRolesString);

            var model = _staticCacheManager.Get(cacheKey, () =>
            {
                var result = new PublicInfoModel()
                {
                    AutoPlay             = settings.AutoPlay,
                    AutoPlayInterval     = settings.AutoPlayInterval,
                    MinDragOffsetToSlide = settings.MinDragOffsetToSlide,
                    SlideDuration        = settings.SlideDuration,
                    SlideSpacing         = settings.SlideSpacing,
                    ArrowNavigation      = settings.ArrowNavigationDisplay,
                    BulletNavigation     = settings.BulletNavigationDisplay
                };

                result.Slides = _slideService.GetAllSlides(storeId: _storeContext.CurrentStore.Id)
                                .Where(x => x.PublishToday()
                                       //1.0.5 all with Alc
                                       //Set catalogsettings.ignoreacl = True to use ALC
                                       //&& ((customerRoleIds.Except(_aclService.GetCustomerRoleIdsWithAccess(x).ToList()).ToList().Count < customerRoleIds.Count) || (_aclService.GetCustomerRoleIdsWithAccess(x).ToList().Count == 0)))
                                       && (_aclService.Authorize(x)))
                                .OrderBy(x => x.DisplayOrder).Select(slide =>
                {
                    var pictureId = _localizationService.GetLocalized(slide, z => z.PictureId, _workContext.WorkingLanguage.Id, true, false);

                    return(new PublicInfoModel.PublicSlideModel()
                    {
                        Picture = _pictureService.GetPictureUrl(pictureId.GetValueOrDefault(0)),
                        Description = _localizationService.GetLocalized(slide, z => z.Description, _workContext.WorkingLanguage.Id),
                        Hyperlink = _localizationService.GetLocalized(slide, z => z.HyperlinkAddress, _workContext.WorkingLanguage.Id)
                    });
                }).ToList();
                return(result);
            });

            return(View("~/Plugins/Widgets.qBoSlider/Views/Public/PublicInfo.cshtml", model));
        }
示例#4
0
        /// <summary>
        /// Uninstall plugin
        /// </summary>
        public override void Uninstall()
        {
            var allSlides = _slideService.GetAllSlides(storeId: _storeContext.CurrentStore.Id);

            //settings
            _settingService.DeleteSetting <qBoSliderSettings>();

            //remove slides from database
            while (allSlides.Any())
            {
                var slide = allSlides[0];

                _slideService.DeleteSlide(slide);
                allSlides.Remove(slide);
            }

            base.Uninstall();
        }
示例#5
0
        /// <summary>
        /// Prepare slide paged list model
        /// </summary>
        /// <param name="searchModel">Slide search model</param>
        /// <returns>Slide paged list model</returns>
        public virtual SlideSearchModel.SlidePagedListModel PrepareSlideListPagedModel(SlideSearchModel searchModel)
        {
            var slides    = _slideService.GetAllSlides(showHidden: true, pageIndex: searchModel.Page - 1, pageSize: searchModel.PageSize);
            var gridModel = new SlideSearchModel.SlidePagedListModel().PrepareToGrid(searchModel, slides, () =>
            {
                return(slides.Select(slide =>
                {
                    var pictureId = slide.PictureId.GetValueOrDefault(0);
                    return new SlideSearchModel.SlideListItemModel()
                    {
                        Id = slide.Id,
                        Picture = _pictureService.GetPictureUrl(pictureId, 300),
                        Hyperlink = slide.HyperlinkAddress,
                        StartDateUtc = slide.StartDateUtc,
                        EndDateUtc = slide.EndDateUtc,
                        Published = slide.Published
                    };
                }));
            });

            return(gridModel);
        }
示例#6
0
        /// <summary>
        /// Prepare add slide model search list
        /// </summary>
        /// <param name="searchModel">Add widget zone slide search model</param>
        /// <returns>Add widget zone slide model</returns>
        public virtual AddWidgetZoneSlideModel.SlidePagedListModel PrepareAddWidgetZoneSlideModel(AddWidgetZoneSlideModel searchModel)
        {
            var slides    = _slideService.GetAllSlides(showHidden: true, pageIndex: searchModel.Page - 1, pageSize: searchModel.PageSize);
            var gridModel = new AddWidgetZoneSlideModel.SlidePagedListModel().PrepareToGrid(searchModel, slides, () =>
            {
                return(slides.Select(slide =>
                {
                    var picture = _pictureService.GetPictureById(slide.PictureId.GetValueOrDefault(0));
                    var pictureUrl = _pictureService.GetPictureUrl(picture.Id, 300);

                    return new AddWidgetZoneSlideModel.SlideModel()
                    {
                        Id = slide.Id,
                        PictureUrl = pictureUrl,
                        StartDateUtc = slide.StartDateUtc,
                        EndDateUtc = slide.EndDateUtc,
                        Published = slide.Published
                    };
                }));
            });

            return(gridModel);
        }