public ActionResult GetContent(string menu, int page)
        {
            var viewBag = ViewBag;

            var menuLink = _menuLinkService.GetBySeoUrl(menu);

            if (menuLink == null)
            {
                return(View());
            }

            var menuLinkLocalized = menuLink.ToModel();

            ViewBag.Title        = menuLinkLocalized.MetaTitle ?? menuLinkLocalized.MenuName;
            ViewBag.MetaKeyWords = menuLinkLocalized.MetaKeywords;
            ViewBag.SiteUrl      = Url.Action("GetContent", "Menu", new { menu, page, area = "" });
            ViewBag.Description  = menuLinkLocalized.MetaDescription;
            ViewBag.Image        = Url.Content(string.Concat("~/", menuLinkLocalized.ImageBigSize));

            //((dynamic)base.ViewBag).Title = menuLinkLocalized.MetaTitle;
            //((dynamic)base.ViewBag).KeyWords = menuLinkLocalized.MetaKeywords;
            //((dynamic)base.ViewBag).SiteUrl = base.Url.Action("GetContent", "Menu", new { menu = menu, page = page, area = "" });
            //((dynamic)base.ViewBag).Description = menuLinkLocalized.MetaDescription;
            //((dynamic)base.ViewBag).ImageBigSize = base.Url.Content(string.Concat("~/", menuLinkLocalized.ImageBigSize));

            if (menuLinkLocalized.TemplateType == (int)TemplateContent.News)
            {
                viewBag.MenuList = _menuLinkService.GetByOption(template: new List <int> {
                    (int)TemplateContent.News
                });
                //IMenuLinkService menuLinkService = this._menuLinkService;
                //viewBag.MenuList = _menuLinkService.FindBy((MenuLink x) => x.TemplateType == 1, false);
            }


            ViewBag.ParentId = menuLink.ParentId;
            ViewBag.Attrs    = Request["attribute"];
            ViewBag.Prices   = Request["price"];
            ViewBag.KeyWords = Request["keywords"];
            ViewBag.ProAttrs = Request["proattribute"];

            ViewBag.ProductHot = Request["producthot"];
            ViewBag.ProductOld = Request["productold"];
            ViewBag.ProductNew = Request["productnew"];

            ViewBag.TemplateType = menuLink.TemplateType;
            ViewBag.MenuId       = menuLink.Id;
            ViewBag.ImgePath     = menuLink.ImageBigSize;
            ViewBag.VirtualId    = menuLink.VirtualId;
            ViewBag.PageNumber   = page;

            return(View());
        }
Exemple #2
0
        public ActionResult GetFooterLink()
        {
            var menuNavs = new List <MenuNavViewModel>();

            var menuLinks = _menuLinkService.GetByOption(new List <int> {
                (int)Position.Footer
            });

            if (!menuLinks.IsAny())
            {
                return(PartialView(menuNavs));
            }

            var menuNav = menuLinks.Select(x => new MenuNavViewModel
            {
                MenuId           = x.Id,
                ParentId         = x.ParentId,
                MenuName         = x.MenuName,
                SeoUrl           = x.SeoUrl,
                OrderDisplay     = x.OrderDisplay,
                ImageUrl         = x.ImageBigSize,
                CurrentVirtualId = x.CurrentVirtualId,
                VirtualId        = x.VirtualId,
                TemplateType     = x.TemplateType,
                ImageMediumSize  = x.ImageMediumSize,
                ImageSmallSize   = x.ImageSmallSize
            });

            menuNavs = CreateMenuNav(null, menuNav);

            return(PartialView(menuNavs));
        }
Exemple #3
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));
        }
        public ActionResult GetNewsByCategory(string virtualCategoryId, int?menuId, string title, int page, int?month, int?year)
        {
            var viewBag = ViewBag;

            var sortBuilder = new SortBuilder
            {
                ColumnName  = "CreatedDate",
                ColumnOrder = SortBuilder.SortOrder.Descending
            };
            var paging = new Paging
            {
                PageNumber  = page,
                PageSize    = 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);
            }

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

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

            if (news.IsAny())
            {
                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;

                var breadCrumbs = new List <BreadCrumb>();

                //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(str, title);
                    if (menuLink != null)
                    {
                        //Lấy bannerId từ post để hiển thị banner trên post
                        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));
        }