示例#1
0
        public virtual IActionResult NewsItem(int newsItemId)
        {
            if (!_newsSettings.Enabled)
            {
                return(RedirectToRoute("HomePage"));
            }

            var newsItem = _newsService.GetNewsById(newsItemId);

            if (newsItem == null)
            {
                return(RedirectToRoute("HomePage"));
            }

            var hasAdminAccess = _permissionService.Authorize(StandardPermissionProvider.AccessAdminPanel) && _permissionService.Authorize(StandardPermissionProvider.ManageNews);

            //access to News preview
            if ((!newsItem.Published || !_newsService.IsNewsAvailable(newsItem)) && !hasAdminAccess)
            {
                return(RedirectToRoute("HomePage"));
            }

            var model = new NewsItemModel();

            model = _newsModelFactory.PrepareNewsItemModel(model, newsItem, true);

            //display "edit" (manage) link
            if (hasAdminAccess)
            {
                DisplayEditLink(Url.Action("Edit", "News", new { id = newsItem.Id, area = AreaNames.Admin }));
            }

            return(View(model));
        }
示例#2
0
        public ActionResult NewsItem(int newsItemId)
        {
            if (!_newsSettings.Enabled)
            {
                return(RedirectToRoute("HomePage"));
            }

            var newsItem = _newsService.GetNewsById(newsItemId);

            if (newsItem == null ||
                !newsItem.Published ||
                (newsItem.StartDateUtc.HasValue && newsItem.StartDateUtc.Value >= DateTime.UtcNow) ||
                (newsItem.EndDateUtc.HasValue && newsItem.EndDateUtc.Value <= DateTime.UtcNow) ||
                //Store mapping
                !_storeMappingService.Authorize(newsItem))
            {
                return(RedirectToRoute("HomePage"));
            }

            var model = new NewsItemModel();

            model = _newsModelFactory.PrepareNewsItemModel(model, newsItem, true);

            //display "edit" (manage) link
            if (_permissionService.Authorize(StandardPermissionProvider.AccessAdminPanel) && _permissionService.Authorize(StandardPermissionProvider.ManageNews))
            {
                DisplayEditLink(Url.Action("Edit", "News", new { id = newsItem.Id, area = "Admin" }));
            }

            return(View(model));
        }
示例#3
0
        public virtual IActionResult NewsItemCreate()
        {
            //prepare model
            NewsItemModel model = _newsModelFactory.PrepareNewsItemModel(new NewsItemModel(), null);

            return(View(model));
        }
示例#4
0
        public IActionResult Index(int id, string title)
        {
            var haber = _newsService.GetNewsById(id);

            AdjustCount(id = haber.Id);
            var model = _newsModelFactory.PrepareNewsItemModel(new NewsItemModel(), haber, true);

            return(View(model));
        }
示例#5
0
        public virtual IActionResult NewsItemCreate()
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageNews))
            {
                return(AccessDeniedView());
            }

            //prepare model
            var model = _newsModelFactory.PrepareNewsItemModel(new NewsItemModel(), null);

            return(View(model));
        }
示例#6
0
        public CategoriModel PrepareCategoryModel(CategoriModel model, List <Category> categorys)
        {
            if (categorys == null)
            {
                throw new ArgumentNullException(nameof(categorys));
            }

            model.SubCategories = categorys.Select(x => new CategoriModel.SubCategoryModel
            {
                Name              = x.Name,
                Id                = x.Id,
                SeName            = _urlRecordService.GetSeName(x),
                Description       = x.Description,
                VideoGalleryModel = _videoFactory.PrepareVideoGalleryModel(x.VideoGalleryId),
                GalleryModel      = _galleryFactory.PrePareGalleryModel(x.PhotoGalleryId),
                SliderModel       = _sliderFactory.PrePareSliderModel(x.SliderId)
            }).ToList();
            var categoryIds = new List <int>();

            foreach (var category in categorys)
            {
                categoryIds.Add(category.Id);
                if (_catalogSettings.ShowProductsFromSubcategories)
                {
                    //include subcategories
                    categoryIds.AddRange(_categoryService.GetChildCategoryIds(category.Id, _storeContext.CurrentStore.Id));
                }

                var newses = _newsService.GetAllNews(categoryId: category.Id, showHidden: true, approved: true);

                foreach (var newsItem in newses)
                {
                    model.NewsModels.Add(_newsModelFactory.PrepareNewsItemModel(new NewsItemModel(), newsItem, false));
                }
                var newsBig = newses.Where(x => x.BigNews);
                foreach (var newsItem in newsBig)
                {
                    model.LargeNewsModels.Add(_newsModelFactory.PrepareNewsItemModel(new NewsItemModel(), newsItem, false));
                }
            }

            return(model);
        }
示例#7
0
        public virtual IActionResult NewsItem2(int newsItemId)
        {
            if (!_newsSettings.Enabled)
            {
                return(RedirectToRoute("Homepage"));
            }

            var newsItem = _newsService.GetNewsById(newsItemId);

            if (newsItem == null)
            {
                return(InvokeHttp404());
            }

            var notAvailable =
                //published?
                !newsItem.Published ||
                //availability dates
                !_newsService.IsNewsAvailable(newsItem) ||
                //Store mapping
                !_storeMappingService.Authorize(newsItem);
            //Check whether the current user has a "Manage news" permission (usually a store owner)
            //We should allows him (her) to use "Preview" functionality
            var hasAdminAccess = _permissionService.Authorize(StandardPermissionProvider.AccessAdminPanel) && _permissionService.Authorize(StandardPermissionProvider.ManageNews);

            if (notAvailable && !hasAdminAccess)
            {
                return(InvokeHttp404());
            }

            var model = new NewsItemModel();

            model = _newsModelFactory.PrepareNewsItemModel(model, newsItem, true);

            //display "edit" (manage) link
            if (hasAdminAccess)
            {
                DisplayEditLink(Url.Action("NewsItemEdit", "News", new { id = newsItem.Id, area = AreaNames.Admin }));
            }

            return(View(model));
        }