Example #1
0
        public ActionResult GetContent(string menu, int page)
        {
            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.GetByOptions(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());
        }
Example #2
0
        public ActionResult FooterLink()
        {
            var menuNavs = new List <MenuNavViewModel>();

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

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

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

            menuNavs = MenuNavExtensions.MenuNavsViewModels(null, navViewModels);

            return(PartialView(menuNavs));
        }
Example #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));
        }
Example #4
0
        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 == (int)Status.Enable);
            var sortBuilder = new SortBuilder
            {
                ColumnName  = "CreatedDate",
                ColumnOrder = SortBuilder.SortOrder.Descending
            };
            var paging = new Paging
            {
                PageNumber  = page,
                PageSize    = CommonHelper.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 priceQuery = (
                    from s in prices.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
                    select decimal.Parse(s)).ToList();
                var fromPrice = priceQuery[0];
                var toPrice   = priceQuery[1];
                expression = expression.And(x => x.Price >= fromPrice && x.Price <= toPrice);

                ViewBag.Prices = priceQuery;
            }
            if (!string.IsNullOrEmpty(proattrs))
            {
                var attributes     = proattrs.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                var attributeQuery = (
                    from s in attributes
                    select int.Parse(s)).ToList();
                expression = expression.And(x => attributeQuery.Contains(x.Id));

                ViewBag.ProAttributes = attributeQuery;
            }

            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(CommonHelper.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.GetByOptions(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));
        }