Exemplo n.º 1
0
        /// <summary>
        /// Prepare widget zone slide list model
        /// </summary>
        /// <param name="searchModel">Widget zone slide search model</param>
        /// <returns>Widget zone slides paged list</returns>
        public virtual WidgetZoneSlideSearchModel.SlideList PrepareSlidePagedListModel(WidgetZoneSlideSearchModel searchModel)
        {
            var slides    = _widgetZoneSlideService.GetWidgetZoneSlides(searchModel.WidgetZoneId, null, searchModel.Page - 1, searchModel.PageSize);
            var gridModel = new WidgetZoneSlideSearchModel.SlideList().PrepareToGrid(searchModel, slides, () =>
            {
                return(slides.Select(widgetZoneSlide =>
                {
                    var slide = _slideService.GetSlideById(widgetZoneSlide.SlideId);
                    var picture = _pictureService.GetPictureById(slide.PictureId.GetValueOrDefault(0));
                    var pictureUrl = _pictureService.GetPictureUrl(picture.Id, 300);

                    return new WidgetZoneSlideSearchModel.SlideListItem()
                    {
                        Id = widgetZoneSlide.Id,
                        PictureUrl = pictureUrl,
                        StartDateUtc = slide.StartDateUtc,
                        EndDateUtc = slide.EndDateUtc,
                        Published = slide.Published,
                        DisplayOrder = widgetZoneSlide.DisplayOrder
                    };
                }).OrderBy(x => x.DisplayOrder));
            });

            return(gridModel);
        }
Exemplo n.º 2
0
        public IActionResult EditSlidePopup(int id, string btnId, string formId)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageWidgets))
            {
                return(AccessDeniedView());
            }

            var model = new SlideModel();
            var slide = _slideService.GetSlideById(id);

            //set localized values
            AddLocales(_languageService, model.Locales, (locale, languageId) =>
            {
                locale.Hyperlink   = _localizationService.GetLocalized(slide, x => x.HyperlinkAddress, languageId, false, false);
                locale.Description = _localizationService.GetLocalized(slide, x => x.Description, languageId, false, false);
                locale.PictureId   = _localizationService.GetLocalized(slide, x => x.PictureId, languageId, false, false).GetValueOrDefault(0);
            });

            //set default values
            model.Description  = slide.Description;
            model.Hyperlink    = slide.HyperlinkAddress;
            model.PictureId    = slide.PictureId.GetValueOrDefault(0);
            model.StartDateUtc = slide.StartDateUtc;
            model.EndDateUtc   = slide.EndDateUtc;
            model.Published    = slide.Published;
            model.DisplayOrder = slide.DisplayOrder;

            //process store mapping
            PrepareStoreMapping(slide, model);

            //ACL
            PrepareAclModel(model, slide, false);

            return(View("~/Plugins/Widgets.qBoSlider/Views/Admin/EditSlidePopup.cshtml", model));
        }
Exemplo n.º 3
0
        public ActionResult Edit(int id)
        {
            var slide = _slideService.GetSlideById(id);

            if (slide == null)
            {
                return(RedirectToAction("List"));
            }
            return(View(slide));
        }
Exemplo n.º 4
0
        public virtual IActionResult Edit(int id)
        {
            //redirect customer on accessdenied view, if client has no permissions
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageWidgets))
            {
                return(AccessDeniedView());
            }

            var slide = _slideService.GetSlideById(id);

            if (slide == null)
            {
                throw new Exception($"Slide by id: {id} isn't exist.");
            }

            //prepare slide model
            var model = new SlideModel();

            _slideModelFactory.PrepareSlideModel(model, slide);

            return(View("~/Plugins/Widgets.qBoSlider/Views/Admin/Slide/Edit.cshtml", model));
        }
Exemplo n.º 5
0
        protected virtual WidgetZoneModel PrepareSliderModel(WidgetZone widgetZone, int languageId, int storeId)
        {
            //prepare slider model
            var model = new WidgetZoneModel()
            {
                Id                   = widgetZone.Id,
                AutoPlay             = widgetZone.AutoPlay,
                AutoPlayInterval     = widgetZone.AutoPlayInterval,
                MinDragOffsetToSlide = widgetZone.MinDragOffsetToSlide,
                SlideDuration        = widgetZone.SlideDuration,
                SlideSpacing         = widgetZone.SlideSpacing,
                ArrowNavigation      = widgetZone.ArrowNavigationDisplayingTypeId,
                BulletNavigation     = widgetZone.BulletNavigationDisplayingTypeId,
                MinSliderWidth       = widgetZone.MinSlideWidgetZoneWidth,
                MaxSliderWidth       = widgetZone.MaxSlideWidgetZoneWidth
            };

            //add slide models to widget zone slider
            var widgetZoneSlides = _widgetZoneSlideService.GetWidgetZoneSlides(widgetZone.Id).OrderBy(s => s.DisplayOrder);

            foreach (var widgetSlide in widgetZoneSlides)
            {
                var slide = _slideService.GetSlideById(widgetSlide.SlideId);

                //don't display unpublished slides
                if (!slide.Published)
                {
                    continue;
                }

                var today = slide.PublishToday();
                var acl   = _aclService.Authorize(slide);
                var store = _storeMappingService.Authorize(slide, storeId);

                //don't display slides, which shouldn't displays today or not authorized via ACL or not authorized in store
                var display = slide.PublishToday() && _aclService.Authorize(slide) && _storeMappingService.Authorize(slide, storeId);
                if (!display)
                {
                    continue;
                }

                //prepare slide model
                var slideModel = PrepareSlideModel(widgetSlide, slide, languageId);

                //add slide model to slider
                model.Slides.Add(slideModel);
            }

            return(model);
        }
Exemplo n.º 6
0
 public IHttpActionResult GetSlideById(int id)
 {
     try
     {
         var result = _slideService.GetSlideById(id);
         if (result == null)
         {
             return(BadRequest(AppMessage.BadRequestNotFound));
         }
         return(Ok(result));
     }
     catch (System.Exception e)
     {
         return(InternalServerError(e));
     }
 }