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()); }
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)); }
//[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)); }