Пример #1
0
        public ActionResult GetStaticContentParent(int menuId, string title, string virtualId)
        {
            var staticContent = _staticContentService.GetStaticContent(menuId, (int)Status.Enable);

            if (staticContent == null)
            {
                return(HttpNotFound());
            }

            var breadCrumbs = new List <BreadCrumb>();
            var virtualIds  = virtualId.Split('/');

            //Convert to localized
            var staticContentLocalized = staticContent.ToModel();

            var menuLinks = _menuLinkService.GetByOptions(parentId: new List <int> {
                menuId
            });

            menuLinks = menuLinks.Select(x => x.ToModel());

            if (menuLinks.IsAny())
            {
                ViewBag.ListItems = menuLinks;
            }

            foreach (var viruId in virtualIds)
            {
                var menuLink = _menuLinkService.GetByMenuName(viruId, title);
                if (menuLink != null)
                {
                    breadCrumbs.Add(new BreadCrumb
                    {
                        Title   = menuLink.GetLocalized(x => x.MenuName, menuLink.Id),
                        Current = false,
                        Url     = Url.Action("GetContent", "Menu", new { area = "", menu = menuLink.SeoUrl })
                    });
                }
            }

            breadCrumbs.Add(new BreadCrumb
            {
                Current = true,
                Title   = staticContentLocalized.Title
            });

            ViewBag.TitleNews  = staticContentLocalized.Title;
            ViewBag.BreadCrumb = breadCrumbs;
            ViewBag.Title      = staticContentLocalized.Title;

            return(PartialView(staticContentLocalized));
        }
Пример #2
0
        //[PartialCache("Short")]
        public ActionResult PostCategories(string virtualCategoryId, int page, string title, string attrs,
                                           string prices, string proattrs, string keywords
                                           , int?productOld, int?productNew)
        {
            var expression = PredicateBuilder.True <Post>();

            expression = expression.And(x => x.Status == 1);
            var sortBuilder = new SortBuilder
            {
                ColumnName  = "CreatedDate",
                ColumnOrder = SortBuilder.SortOrder.Descending
            };
            var paging = new Paging
            {
                PageNumber  = page,
                PageSize    = PageSize,
                TotalRecord = 0
            };

            if (page == 1)
            {
                var viewBag     = ViewBag;
                var postService = _postService;
                Expression <Func <Post, bool> > productNews = x => x.ProductNew && x.Status == (int)Status.Enable;
                viewBag.HotCard = postService.GetTop(3, productNews, x => x.CreatedDate).ToList();
            }
            if (!string.IsNullOrEmpty(attrs))
            {
                var strArrays = attrs.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                var list      = (
                    from s in strArrays
                    select int.Parse(s)).ToList();
                expression         = expression.And(x => x.AttributeValues.Count(a => list.Contains(a.Id)) > 0);
                ViewBag.Attributes = list;
            }
            if (!string.IsNullOrEmpty(prices))
            {
                var nums = (
                    from s in prices.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
                    select decimal.Parse(s)).ToList();
                var item = nums[0];
                var num  = nums[1];
                expression     = expression.And(x => x.Price >= item && x.Price <= num);
                ViewBag.Prices = nums;
            }
            if (!string.IsNullOrEmpty(proattrs))
            {
                var strArrays1 = proattrs.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                var list1      = (
                    from s in strArrays1
                    select int.Parse(s)).ToList();
                expression            = expression.And(x => list1.Contains(x.Id));
                ViewBag.ProAttributes = list1;
            }
            if (!string.IsNullOrEmpty(keywords))
            {
                expression = expression.And(x => x.Title.Contains(keywords));
            }
            expression = expression.And(x => x.VirtualCategoryId.Contains(virtualCategoryId));
            if (productNew.HasValue)
            {
                expression         = expression.And(x => !x.OldOrNew);
                ViewBag.ProductNew = productNew;
            }
            if (productOld.HasValue & productNew.HasValue)
            {
                expression         = expression.Or(x => x.OldOrNew);
                ViewBag.ProductOld = productOld;
            }
            if (productOld.HasValue & !productNew.HasValue)
            {
                expression         = expression.And(x => x.OldOrNew);
                ViewBag.ProductOld = productOld;
            }

            var posts = _postService.GetBySort(expression, sortBuilder, paging);
            IEnumerable <Post> postLocalized = null;

            if (posts.IsAny())
            {
                postLocalized = posts.Select(x => x.ToModel());

                var pageInfo = new Helper.PageInfo(ExtentionUtils.PageSize, page, paging.TotalRecord,
                                                   i => Url.Action("GetContent", "Menu", new { page = i }));

                ViewBag.PageInfo  = pageInfo;
                ViewBag.CountItem = pageInfo.TotalItems;
                ViewBag.MenuId    = postLocalized.ElementAt(0).MenuId;
            }

            //Get menu category filter
            var menuCategoryFilter = _menuLinkService.GetByOption(virtualId: virtualCategoryId);

            if (menuCategoryFilter.IsAny())
            {
                var lstBreadCrumb = new List <BreadCrumb>();
                ViewBag.MenuCategoryFilter = menuCategoryFilter;

                //Lấy bannerId từ post để hiển thị banner trên post
                ViewBag.BannerId = menuCategoryFilter.FirstOrDefault(x => x.VirtualId == virtualCategoryId).Id;

                var categories = virtualCategoryId.Split('/');
                for (var i = 0; i < categories.Length; i++)
                {
                    //var str = categories[i];
                    var menuLink = _menuLinkService.GetByMenuName(categories[i], title);

                    if (menuLink != null)
                    {
                        //Lấy bannerId từ post để hiển thị banner trên post
                        if (i == 0)
                        {
                            ViewBag.BannerId = menuLink.Id;
                        }

                        lstBreadCrumb.Add(new BreadCrumb
                        {
                            Title   = menuLink.GetLocalized(m => m.MenuName, menuLink.Id),
                            Current = false,
                            Url     = Url.Action("GetContent", "Menu", new { area = "", menu = menuLink.SeoUrl })
                        });
                    }
                }
                lstBreadCrumb.Add(new BreadCrumb
                {
                    Current = true,
                    Title   = title
                });
                ViewBag.BreadCrumb = lstBreadCrumb;
            }

            ViewBag.Title     = title;
            ViewBag.VirtualId = virtualCategoryId;

            return(PartialView(postLocalized));
        }
Пример #3
0
        public ActionResult NewsCategories(string virtualCategoryId, int?menuId, string title, int page, int?month, int?year)
        {
            var sortBuilder = new SortBuilder
            {
                ColumnName  = "CreatedDate",
                ColumnOrder = SortBuilder.SortOrder.Descending
            };
            var paging = new Paging
            {
                PageNumber  = page,
                PageSize    = CommonHelper.PageSize,
                TotalRecord = 0
            };

            var news = _newsService.FindAndSort(x => !x.Video && x.Status == (int)Status.Enable && x.VirtualCategoryId.Contains(virtualCategoryId)
                                                , sortBuilder, paging);

            if (news == null)
            {
                return(HttpNotFound());
            }

            //Expression<Func<StaticContent, bool>> status = x => x.Status == (int)Status.Enable;
            //ViewBag.fixItems = _staticContentService.GetTop(3, status, x => x.ViewCount);

            if (month != null)
            {
                news = news.Where(n => n.CreatedDate.Month == month);
            }

            if (year != null)
            {
                news = news.Where(n => n.CreatedDate.Year == year);
            }

            var newsLocalized = news.Select(x => x.ToModel());

            if (news.IsAny())
            {
                var menuCategoryFilter = _menuLinkService.GetByOptions(virtualId: virtualCategoryId);
                if (menuCategoryFilter.IsAny())
                {
                    ViewBag.BannerId = menuCategoryFilter.FirstOrDefault(x => x.VirtualId == virtualCategoryId).Id;
                }

                var pageInfo = new Helper.PageInfo(CommonHelper.PageSize, page, paging.TotalRecord, i => Url.Action("GetContent", "Menu", new { page = i }));
                ViewBag.PageInfo  = pageInfo;
                ViewBag.CountItem = pageInfo.TotalItems;

                var breadCrumbs = new List <BreadCrumb>();
                var categoryIds = virtualCategoryId.Split('/');
                for (var i = 0; i < categoryIds.Length; i++)
                {
                    var categoryId = categoryIds[i];
                    var menuLink   = _menuLinkService.GetByMenuName(categoryId, title);
                    if (menuLink != null)
                    {
                        if (i == 0)
                        {
                            ViewBag.BannerId = menuLink.Id;
                        }

                        breadCrumbs.Add(new BreadCrumb
                        {
                            Title   = menuLink.GetLocalized(m => m.MenuName, menuLink.Id),
                            Current = false,
                            Url     = Url.Action("GetContent", "Menu", new { area = "", menu = menuLink.SeoUrl })
                        });
                    }
                }
                breadCrumbs.Add(new BreadCrumb
                {
                    Current = true,
                    Title   = title
                });
                ViewBag.BreadCrumb = breadCrumbs;
            }

            ViewBag.MenuId    = menuId;
            ViewBag.VirtualId = virtualCategoryId;
            ViewBag.Title     = title;

            return(PartialView(newsLocalized));
        }