예제 #1
0
        public ActionResult Index(int page = 1, string keywords = "")
        {
            ((dynamic)base.ViewBag).Keywords = keywords;
            SortingPagingBuilder sortingPagingBuilder = new SortingPagingBuilder()
            {
                Keywords = keywords,
                Sorts    = new SortBuilder()
                {
                    ColumnName  = "CreatedDate",
                    ColumnOrder = SortBuilder.SortOrder.Descending
                }
            };
            Paging paging = new Paging()
            {
                PageNumber  = page,
                PageSize    = base._pageSize,
                TotalRecord = 0
            };
            List <AttributeValue> list = this._attributeValueService.PagedList(sortingPagingBuilder, paging).ToList <AttributeValue>();

            list.ForEach((AttributeValue item) => item.Attribute = this._attributeService.GetById(item.AttributeId));
            if (list != null && list.Any <AttributeValue>())
            {
                Helper.PageInfo pageInfo = new Helper.PageInfo(ExtentionUtils.PageSize, page, paging.TotalRecord, (int i) => this.Url.Action("Index", new { page = i, keywords = keywords }));
                ((dynamic)base.ViewBag).PageInfo = pageInfo;
            }
            return(base.View(list));
        }
예제 #2
0
        public ActionResult Index(int page = 1, string keywords = "")
        {
            ViewBag.Keywords = keywords;
            var sortingPagingBuilder = new SortingPagingBuilder
            {
                Keywords = keywords,
                Sorts    = new SortBuilder
                {
                    ColumnName  = "CreatedDate",
                    ColumnOrder = SortBuilder.SortOrder.Descending
                }
            };
            var paging = new Paging
            {
                PageNumber  = page,
                PageSize    = PageSize,
                TotalRecord = 0
            };
            var list = _attributeValueService.PagedList(sortingPagingBuilder, paging).ToList();

            list.ForEach(item => item.Attribute = _attributeService.GetById(item.AttributeId));
            if (list != null && list.Any())
            {
                var pageInfo = new Helper.PageInfo(CommonHelper.PageSize, page, paging.TotalRecord, i => Url.Action("Index", new { page = i, keywords }));
                ViewBag.PageInfo = pageInfo;
            }
            return(View(list));
        }
예제 #3
0
        public ActionResult GetSaleOffByCategory(string virtualCategoryId, int page, string title)
        {
            SortingPagingBuilder sortingPagingBuilder = new SortingPagingBuilder()
            {
                Keywords = virtualCategoryId,
                Sorts    = new SortBuilder()
                {
                    ColumnName  = "CreatedDate",
                    ColumnOrder = SortBuilder.SortOrder.Descending
                }
            };
            Paging paging = new Paging()
            {
                PageNumber  = page,
                PageSize    = base._pageSize,
                TotalRecord = 0
            };
            IEnumerable <News> news = this._newsService.PagedListByMenu(sortingPagingBuilder, paging);

            if (news.IsAny <News>())
            {
                Helper.PageInfo pageInfo = new Helper.PageInfo(ExtentionUtils.PageSize, page, paging.TotalRecord, (int i) => base.Url.Action("GetContent", "Menu", new { page = i }));
                ((dynamic)base.ViewBag).PageInfo  = pageInfo;
                ((dynamic)base.ViewBag).CountItem = pageInfo.TotalItems;
            }
            ((dynamic)base.ViewBag).Title = title;
            return(base.PartialView(news));
        }
예제 #4
0
        public ActionResult Index(int page = 1, string keywords = "")
        {
            ((dynamic)base.ViewBag).Keywords = keywords;
            SortingPagingBuilder sortingPagingBuilder = new SortingPagingBuilder()
            {
                Keywords = keywords,
                Sorts    = new SortBuilder()
                {
                    ColumnName  = "Id",
                    ColumnOrder = SortBuilder.SortOrder.Descending
                }
            };
            Paging paging = new Paging()
            {
                PageNumber  = page,
                PageSize    = base._pageSize,
                TotalRecord = 0
            };

            IEnumerable <Order> orders = this._orderService.PagedList(sortingPagingBuilder, paging);

            OrderViewModel orderViewModel      = new OrderViewModel();
            IEnumerable <OrderViewModel> model = orders.Select(m =>
            {
                return(m.ToModel(orderViewModel));
            });

            if (model != null && model.Any())
            {
                Helper.PageInfo pageInfo = new Helper.PageInfo(ExtentionUtils.PageSize, page, paging.TotalRecord, (int i) => this.Url.Action("Index", new { page = i, keywords = keywords }));
                ((dynamic)base.ViewBag).PageInfo = pageInfo;
            }

            return(base.View(model));
        }
예제 #5
0
        public ActionResult Index(int page = 1, string keywords = "")
        {
            ViewBag.Keywords = keywords;

            var sortingPagingBuilder = new SortingPagingBuilder
            {
                Keywords = keywords,
                Sorts    = new SortBuilder
                {
                    ColumnName  = "CreatedDate",
                    ColumnOrder = SortBuilder.SortOrder.Descending
                }
            };
            var paging = new Paging
            {
                PageNumber  = page,
                PageSize    = PageSize,
                TotalRecord = 0
            };

            var manufacturers = _paymentMethodService.PagedList(sortingPagingBuilder, paging);

            if (manufacturers.IsAny())
            {
                var pageInfo = new Helper.PageInfo(CommonHelper.PageSize, page, paging.TotalRecord, i => Url.Action("Index", new { page = i, keywords }));
                ViewBag.PageInfo = pageInfo;
            }

            return(View(manufacturers));
        }
예제 #6
0
        public ActionResult Index(int page = 1, string keywords = "")
        {
            ViewBag.Keywords = keywords;
            var sortingPagingBuilder = new SortingPagingBuilder
            {
                Keywords = keywords,
                Sorts    = new SortBuilder
                {
                    ColumnName  = "CreatedDate",
                    ColumnOrder = SortBuilder.SortOrder.Descending
                }
            };
            var paging = new Paging
            {
                PageNumber  = page,
                PageSize    = PageSize,
                TotalRecord = 0
            };

            var orders = _orderService.PagedList(sortingPagingBuilder, paging);

            var orderViewModels = orders.Select(Mapper.Map <Order, OrderViewModel>).ToList();

            if (orderViewModels.Any())
            {
                var pageInfo = new Helper.PageInfo(ExtentionUtils.PageSize, page, paging.TotalRecord,
                                                   i => Url.Action("Index", new { page = i, keywords }));
                ViewBag.PageInfo = pageInfo;
            }

            return(View(orderViewModels));
        }
예제 #7
0
        public ActionResult PostManagement(int page = 1)
        {
            var sortBuilder = new SortBuilder
            {
                ColumnName  = "CreatedDate",
                ColumnOrder = SortBuilder.SortOrder.Descending
            };
            var paging = new Paging
            {
                PageNumber  = page,
                PageSize    = 10,
                TotalRecord = 0
            };
            var expression = PredicateBuilder.True <Post>();

            expression = expression.And(x => x.CreatedBy.Equals(HttpContext.User.Identity.Name));
            var posts = _postService.FindAndSort(expression, sortBuilder, paging);

            if (posts.IsAny())
            {
                var pageInfo = new Helper.PageInfo(ExtentionUtils.PageSize, page, paging.TotalRecord, i => Url.Action("PostManagement", "Account", new { page = i }));
                ViewBag.PageInfo  = pageInfo;
                ViewBag.CountItem = pageInfo.TotalItems;
            }
            return(View(posts));
        }
예제 #8
0
        public ActionResult PostManagement(int page = 1)
        {
            SortBuilder sortBuilder = new SortBuilder()
            {
                ColumnName  = "CreatedDate",
                ColumnOrder = SortBuilder.SortOrder.Descending
            };
            Paging paging = new Paging()
            {
                PageNumber  = page,
                PageSize    = 10,
                TotalRecord = 0
            };
            Expression <Func <Post, bool> > expression = PredicateBuilder.True <Post>();

            expression = expression.And <Post>((Post x) => x.CreatedBy.Equals(this.HttpContext.User.Identity.Name));
            IEnumerable <Post> posts = this._postService.FindAndSort(expression, sortBuilder, paging);

            if (posts.IsAny <Post>())
            {
                Helper.PageInfo pageInfo = new Helper.PageInfo(ExtentionUtils.PageSize, page, paging.TotalRecord, (int i) => base.Url.Action("PostManagement", "Account", new { page = i }));
                ((dynamic)base.ViewBag).PageInfo  = pageInfo;
                ((dynamic)base.ViewBag).CountItem = pageInfo.TotalItems;
            }
            return(base.View(posts));
        }
예제 #9
0
        public ActionResult GetSaleOffByCategory(string virtualCategoryId, int page, string title)
        {
            var sortingPagingBuilder = new SortingPagingBuilder
            {
                Keywords = virtualCategoryId,
                Sorts    = new SortBuilder
                {
                    ColumnName  = "CreatedDate",
                    ColumnOrder = SortBuilder.SortOrder.Descending
                }
            };
            var paging = new Paging
            {
                PageNumber  = page,
                PageSize    = CommonHelper.PageSize,
                TotalRecord = 0
            };
            var news = _newsService.PagedListByMenu(sortingPagingBuilder, paging);

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

            return(PartialView(news));
        }
예제 #10
0
        public ActionResult Index(int page = 1, string keywords = "")
        {
            ((dynamic)base.ViewBag).Keywords = keywords;
            SortingPagingBuilder sortingPagingBuilder = new SortingPagingBuilder()
            {
                Keywords = keywords,
                Sorts    = new SortBuilder()
                {
                    ColumnName  = "CreatedDate",
                    ColumnOrder = SortBuilder.SortOrder.Descending
                }
            };
            Paging paging = new Paging()
            {
                PageNumber  = page,
                PageSize    = base._pageSize,
                TotalRecord = 0
            };
            IEnumerable <LandingPage> landingPages = this._landingPageService.PagedList(sortingPagingBuilder, paging);

            if (landingPages != null && landingPages.Any <LandingPage>())
            {
                Helper.PageInfo pageInfo = new Helper.PageInfo(ExtentionUtils.PageSize, page, paging.TotalRecord, (int i) => this.Url.Action("Index", new { page = i, keywords = keywords }));
                ((dynamic)base.ViewBag).PageInfo = pageInfo;
            }
            return(base.View(landingPages));
        }
예제 #11
0
        public ActionResult Index(int page = 1, string keywords = "")
        {
            ViewBag.Keywords = keywords;
            var sortingPagingBuilder = new SortingPagingBuilder
            {
                Keywords = keywords,
                Sorts    = new SortBuilder
                {
                    ColumnName  = "Name",
                    ColumnOrder = SortBuilder.SortOrder.Descending
                }
            };
            var paging = new Paging
            {
                PageNumber  = page,
                PageSize    = PageSize,
                TotalRecord = 0
            };
            var provinces = _provinceService.PagedList(sortingPagingBuilder, paging);

            if (provinces != null && provinces.Any())
            {
                var pageInfo = new Helper.PageInfo(CommonHelper.PageSize, page, paging.TotalRecord, i => Url.Action("Index", new { page = i, keywords }));
                ViewBag.PageInfo = pageInfo;
            }
            return(View(provinces));
        }
예제 #12
0
        public async Task <ActionResult> Index(int page = 1, string keywords = "")
        {
            ((dynamic)this.ViewBag).Keywords = keywords;
            SortingPagingBuilder sortingPagingBuilder = new SortingPagingBuilder()
            {
                Keywords = keywords
            };
            SortBuilder sortBuilder = new SortBuilder()
            {
                ColumnName  = "UserName",
                ColumnOrder = SortBuilder.SortOrder.Descending
            };

            sortingPagingBuilder.Sorts = sortBuilder;
            SortingPagingBuilder sortingPagingBuilder1 = sortingPagingBuilder;
            Paging paging = new Paging()
            {
                PageNumber  = page,
                PageSize    = this._pageSize,
                TotalRecord = 0
            };
            Paging paging1 = paging;
            IEnumerable <App.Domain.Entities.Account.User> users = await this._userService.PagedList(sortingPagingBuilder1, paging1);

            if (users != null && users.Any())
            {
                Helper.PageInfo pageInfo = new Helper.PageInfo(ExtentionUtils.PageSize, page, paging1.TotalRecord, (int i) => this.Url.Action("Index", new { page = i, keywords = keywords }));
                ((dynamic)this.ViewBag).PageInfo = pageInfo;
            }
            return(this.View(users));
        }
예제 #13
0
        public ActionResult Index(int page = 1, string keywords = "")
        {
            ViewBag.Keywords = keywords;
            var sortingPagingBuilder = new SortingPagingBuilder
            {
                Keywords = keywords,
                Sorts    = new SortBuilder
                {
                    ColumnName  = "CreatedDate",
                    ColumnOrder = SortBuilder.SortOrder.Descending
                }
            };
            var paging = new Paging
            {
                PageNumber  = page,
                PageSize    = PageSize,
                TotalRecord = 0
            };

            var slideShows = _slideShowService.PagedList(sortingPagingBuilder, paging);

            if (slideShows != null && slideShows.Any())
            {
                var pageInfo = new Helper.PageInfo(ExtentionUtils.PageSize, page, paging.TotalRecord,
                                                   i => Url.Action("Index", new { page = i, keywords }));

                ViewBag.PageInfo = pageInfo;
            }

            return(View(slideShows));
        }
예제 #14
0
        public ActionResult GetCustomerCareCategory(string virtualCategoryId, int page, string title)
        {
            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 == 1 && x.VirtualCategoryId.Contains(virtualCategoryId), sortBuilder, paging);

            if (news.IsAny())
            {
                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.Title             = title;
            ViewBag.virtualCategoryId = virtualCategoryId;

            return(PartialView(news));
        }
예제 #15
0
        public ActionResult GetCustomerCareCategory(string virtualCategoryId, int page, string title)
        {
            SortBuilder sortBuilder = new SortBuilder()
            {
                ColumnName  = "CreatedDate",
                ColumnOrder = SortBuilder.SortOrder.Descending
            };
            Paging paging = new Paging()
            {
                PageNumber  = page,
                PageSize    = base._pageSize,
                TotalRecord = 0
            };
            IEnumerable <News> news = this._newsService.FindAndSort((News x) => !x.Video && x.Status == 1 && x.VirtualCategoryId.Contains(virtualCategoryId), sortBuilder, paging);

            if (news.IsAny <News>())
            {
                Helper.PageInfo pageInfo = new Helper.PageInfo(ExtentionUtils.PageSize, page, paging.TotalRecord, (int i) => base.Url.Action("GetContent", "Menu", new { page = i }));
                ((dynamic)base.ViewBag).PageInfo  = pageInfo;
                ((dynamic)base.ViewBag).CountItem = pageInfo.TotalItems;
            }
            ((dynamic)base.ViewBag).Title             = title;
            ((dynamic)base.ViewBag).virtualCategoryId = virtualCategoryId;
            return(base.PartialView(news));
        }
예제 #16
0
        public async Task <ActionResult> Index(int page = 1, string keywords = "")
        {
            ViewBag.Keywords = keywords;
            var sortingPagingBuilder = new SortingPagingBuilder
            {
                Keywords = keywords
            };
            var sortBuilder = new SortBuilder
            {
                ColumnName  = "Name",
                ColumnOrder = SortBuilder.SortOrder.Descending
            };

            sortingPagingBuilder.Sorts = sortBuilder;
            var sortingPagingBuilder1 = sortingPagingBuilder;
            var paging = new Paging
            {
                PageNumber  = page,
                PageSize    = PageSize,
                TotalRecord = 0
            };
            var paging1 = paging;
            var roles   = await _roleService.PagedList(sortingPagingBuilder1, paging1);

            if (roles != null && roles.Any())
            {
                var pageInfo = new Helper.PageInfo(ExtentionUtils.PageSize, page, paging1.TotalRecord, i => Url.Action("Index", new { page = i, keywords }));
                ViewBag.PageInfo = pageInfo;
            }
            return(View(roles));
        }
예제 #17
0
        public ActionResult SearchResult(string catUrl, string parameters, int page)
        {
            HttpCookie httpCookie = base.HttpContext.Request.Cookies.Get("system_search");

            if (!base.Request.Cookies.ExistsCokiee("system_search"))
            {
                return(base.View());
            }
            Expression <Func <Post, bool> > expression = PredicateBuilder.True <Post>();
            SortBuilder sortBuilder = new SortBuilder()
            {
                ColumnName  = "CreatedDate",
                ColumnOrder = SortBuilder.SortOrder.Descending
            };
            Paging paging = new Paging()
            {
                PageNumber  = page,
                PageSize    = base._pageSize,
                TotalRecord = 0
            };
            SeachConditions seachCondition = JsonConvert.DeserializeObject <SeachConditions>(base.Server.UrlDecode(httpCookie.Value));

            expression = expression.And <Post>((Post x) => (int?)x.MenuId == seachCondition.CategoryId);
            MenuLink byId = this._menuLinkService.GetById(seachCondition.CategoryId.Value);

            ((dynamic)base.ViewBag).KeyWords    = byId.MetaKeywords;
            ((dynamic)base.ViewBag).SiteUrl     = base.Url.Action("GetContent", "Menu", new { catUrl = catUrl, parameters = parameters, page = page, area = "" });
            ((dynamic)base.ViewBag).Description = byId.MetaDescription;
            ((dynamic)base.ViewBag).Image       = base.Url.Content(string.Concat("~/", byId.ImageUrl));
            ((dynamic)base.ViewBag).VirtualId   = byId.CurrentVirtualId;
            string menuName = byId.MenuName;

            if (!string.IsNullOrEmpty(seachCondition.Keywords))
            {
                expression = expression.And <Post>((Post x) => x.Title.Contains(seachCondition.Keywords) || x.Description.Contains(seachCondition.Keywords));
            }
            IEnumerable <Post> posts = this._postService.FindAndSort(expression, sortBuilder, paging);

            ((dynamic)base.ViewBag).PageNumber = page;
            ((dynamic)base.ViewBag).Title      = menuName;
            if (posts.IsAny <Post>())
            {
                Helper.PageInfo pageInfo = new Helper.PageInfo(ExtentionUtils.PageSize, page, paging.TotalRecord, (int i) => base.Url.Action("GetContent", "Menu", new { page = i }));
                ((dynamic)base.ViewBag).PageInfo  = pageInfo;
                ((dynamic)base.ViewBag).CountItem = pageInfo.TotalItems;
            }
            return(base.View("GetPostByCategory", posts));
        }
예제 #18
0
        public ActionResult SearchResult(string catUrl, string parameters, int page)
        {
            var httpCookie = HttpContext.Request.Cookies.Get("system_search");

            if (!Request.Cookies.ExistsCokiee("system_search"))
            {
                return(View());
            }

            var expression  = PredicateBuilder.True <Post>();
            var sortBuilder = new SortBuilder
            {
                ColumnName  = "CreatedDate",
                ColumnOrder = SortBuilder.SortOrder.Descending
            };
            var paging = new Paging
            {
                PageNumber  = page,
                PageSize    = PageSize,
                TotalRecord = 0
            };

            var seachCondition = JsonConvert.DeserializeObject <SeachConditions>(Server.UrlDecode(httpCookie.Value));

            if (!string.IsNullOrEmpty(seachCondition.Keywords))
            {
                expression = expression.And(x =>
                                            x.SeoUrl.Contains(seachCondition.Keywords) || x.Title.Contains(seachCondition.Keywords) ||
                                            x.Description.Contains(seachCondition.Keywords));
            }

            var posts = _postService.FindAndSort(expression, sortBuilder, paging);

            if (posts.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;
            }

            ViewBag.PageNumber = page;
            ViewBag.Title      = "Tìm kiếm";

            return(View(posts));
        }
예제 #19
0
        public ActionResult SearchPost(string keywords, int?status = null, DateTime?from = null, DateTime?to = null)
        {
            ((dynamic)base.ViewBag).Keywords = keywords;
            SortBuilder sortBuilder = new SortBuilder()
            {
                ColumnName  = "CreatedDate",
                ColumnOrder = SortBuilder.SortOrder.Descending
            };
            Paging paging = new Paging()
            {
                PageNumber  = 1,
                PageSize    = 10,
                TotalRecord = 0
            };
            Expression <Func <Post, bool> > expression = PredicateBuilder.True <Post>();

            expression = expression.And <Post>((Post x) => x.CreatedBy.Equals(this.HttpContext.User.Identity.Name));
            if (status.HasValue)
            {
                expression = expression.And <Post>((Post x) => (int?)x.Status == status);
            }
            if (from.HasValue)
            {
                expression = expression.And <Post>((Post x) => x.StartDate >= from);
            }
            if (to.HasValue)
            {
                expression = expression.And <Post>((Post x) => x.EndDate <= to);
            }
            if (!string.IsNullOrEmpty(keywords))
            {
                expression = expression.And <Post>((Post x) => x.Title.Contains(keywords));
            }
            IEnumerable <Post> posts = this._postService.FindAndSort(expression, sortBuilder, paging);

            if (posts.IsAny <Post>())
            {
                Helper.PageInfo pageInfo = new Helper.PageInfo(ExtentionUtils.PageSize, 1, paging.TotalRecord, (int i) => base.Url.Action("PostManagement", "Account", new { page = i }));
                ((dynamic)base.ViewBag).PageInfo  = pageInfo;
                ((dynamic)base.ViewBag).CountItem = pageInfo.TotalItems;
            }
            return(base.View("PostManagement", posts));
        }
예제 #20
0
        public ActionResult SearchPost(string keywords, int?status = null, DateTime?from = null, DateTime?to = null)
        {
            ViewBag.Keywords = keywords;
            var sortBuilder = new SortBuilder
            {
                ColumnName  = "CreatedDate",
                ColumnOrder = SortBuilder.SortOrder.Descending
            };
            var paging = new Paging
            {
                PageNumber  = 1,
                PageSize    = 10,
                TotalRecord = 0
            };
            var expression = PredicateBuilder.True <Post>();

            expression = expression.And(x => x.CreatedBy.Equals(HttpContext.User.Identity.Name));
            if (status.HasValue)
            {
                expression = expression.And(x => (int?)x.Status == status);
            }
            if (from.HasValue)
            {
                expression = expression.And(x => x.StartDate >= from);
            }
            if (to.HasValue)
            {
                expression = expression.And(x => x.EndDate <= to);
            }
            if (!string.IsNullOrEmpty(keywords))
            {
                expression = expression.And(x => x.Title.Contains(keywords));
            }
            var posts = _postService.FindAndSort(expression, sortBuilder, paging);

            if (posts.IsAny())
            {
                var pageInfo = new Helper.PageInfo(ExtentionUtils.PageSize, 1, paging.TotalRecord, i => Url.Action("PostManagement", "Account", new { page = i }));
                ViewBag.PageInfo  = pageInfo;
                ViewBag.CountItem = pageInfo.TotalItems;
            }
            return(View("PostManagement", posts));
        }
예제 #21
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));
        }
예제 #22
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));
        }
예제 #23
0
        public ActionResult GetNewsByCategory(string virtualCategoryId, int?menuId, string title, int page)
        {
            int languageId = _workContext.WorkingLanguage.Id;

            ((dynamic)base.ViewBag).MenuId    = menuId;
            ((dynamic)base.ViewBag).VirtualId = virtualCategoryId;
            dynamic viewBag = base.ViewBag;

            IStaticContentService staticContentService      = this._staticContentService;
            Expression <Func <StaticContent, bool> > status = (StaticContent x) => x.Status == 1;

            viewBag.fixItems = staticContentService.GetTop <int>(3, status, (StaticContent x) => x.ViewCount);

            SortBuilder sortBuilder = new SortBuilder()
            {
                ColumnName  = "CreatedDate",
                ColumnOrder = SortBuilder.SortOrder.Descending
            };
            Paging paging = new Paging()
            {
                PageNumber  = page,
                PageSize    = base._pageSize,
                TotalRecord = 0
            };

            IEnumerable <News> news = this._newsService.FindAndSort((News x) => !x.Video && x.Status == 1 && x.VirtualCategoryId.Contains(virtualCategoryId), sortBuilder, paging);

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

            IEnumerable <News> newsLocalized = news
                                               .Select(x =>
            {
                return(x.ToModel());
            });

            if (news.IsAny())
            {
                Helper.PageInfo pageInfo = new Helper.PageInfo(ExtentionUtils.PageSize, page, paging.TotalRecord, (int i) => base.Url.Action("GetContent", "Menu", new { page = i }));
                ((dynamic)base.ViewBag).PageInfo  = pageInfo;
                ((dynamic)base.ViewBag).CountItem = pageInfo.TotalItems;

                MenuLink          menuLink    = null;
                List <BreadCrumb> breadCrumbs = new List <BreadCrumb>();
                string[]          strArrays2  = virtualCategoryId.Split(new char[] { '/' });
                for (int i1 = 0; i1 < (int)strArrays2.Length; i1++)
                {
                    string str = strArrays2[i1];
                    menuLink = this._menuLinkService.Get((MenuLink x) => x.CurrentVirtualId.Equals(str) && x.Id != menuId, false);

                    if (menuLink != null)
                    {
                        breadCrumbs.Add(new BreadCrumb()
                        {
                            Title   = menuLink.GetLocalizedByLocaleKey(menuLink.MenuName, menuLink.Id, languageId, "MenuLink", "MenuName"),
                            Current = false,
                            Url     = base.Url.Action("GetContent", "Menu", new { area = "", menu = menuLink.SeoUrl })
                        });
                    }
                }
                breadCrumbs.Add(new BreadCrumb()
                {
                    Current = true,
                    Title   = title
                });
                ((dynamic)base.ViewBag).BreadCrumb = breadCrumbs;
            }

            ((dynamic)base.ViewBag).Title = title;

            return(base.PartialView(newsLocalized));
        }
예제 #24
0
        public ActionResult GetPostByCategory(string virtualCategoryId, int page, string title, string attrs, string prices, string proattrs, string keywords)
        {
            int languageId = _workContext.WorkingLanguage.Id;

            List <BreadCrumb> breadCrumbs = new List <BreadCrumb>();
            Expression <Func <Post, bool> > expression = PredicateBuilder.True <Post>();

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

            if (page == 1)
            {
                dynamic      viewBag     = base.ViewBag;
                IPostService postService = this._postService;
                Expression <Func <Post, bool> > productNew = (Post x) => x.ProductNew && x.Status == 1;
                viewBag.HotCard = postService.GetTop <DateTime>(3, productNew, (Post x) => x.CreatedDate).ToList <Post>();
            }
            if (!string.IsNullOrEmpty(attrs))
            {
                string[]   strArrays = attrs.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                List <int> list      = (
                    from s in strArrays
                    select int.Parse(s)).ToList <int>();
                expression = expression.And <Post>((Post x) => x.AttributeValues.Count <AttributeValue>((AttributeValue a) => list.Contains(a.Id)) > 0);
                ((dynamic)base.ViewBag).Attributes = list;
            }
            if (!string.IsNullOrEmpty(prices))
            {
                List <double> nums = (
                    from s in prices.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
                    select double.Parse(s)).ToList <double>();
                double item = nums[0];
                double num  = nums[1];
                expression = expression.And <Post>((Post x) => x.Price >= (double?)item && x.Price <= (double?)num);
                ((dynamic)base.ViewBag).Prices = nums;
            }
            if (!string.IsNullOrEmpty(proattrs))
            {
                string[]   strArrays1 = proattrs.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                List <int> list1      = (
                    from s in strArrays1
                    select int.Parse(s)).ToList <int>();
                expression = expression.And <Post>((Post x) => list1.Contains(x.Id));
                ((dynamic)base.ViewBag).ProAttributes = list1;
            }
            if (!string.IsNullOrEmpty(keywords))
            {
                expression = expression.And <Post>((Post x) => x.Title.Contains(keywords));
            }
            expression = expression.And <Post>((Post x) => x.VirtualCategoryId.Contains(virtualCategoryId));
            IEnumerable <Post> posts = this._postService.FindAndSort(expression, sortBuilder, paging);

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

            string[] strArrays2 = virtualCategoryId.Split(new char[] { '/' });
            for (int i1 = 0; i1 < (int)strArrays2.Length; i1++)
            {
                string   str      = strArrays2[i1];
                MenuLink menuLink = this._menuLinkService.Get((MenuLink x) => x.CurrentVirtualId.Equals(str) && !x.MenuName.Equals(title), false);
                if (menuLink != null)
                {
                    breadCrumbs.Add(new BreadCrumb()
                    {
                        Title   = menuLink.GetLocalizedByLocaleKey(menuLink.MenuName, menuLink.Id, languageId, "MenuLink", "MenuName"),
                        Current = false,
                        Url     = base.Url.Action("GetContent", "Menu", new { area = "", menu = menuLink.SeoUrl })
                    });
                }
            }
            breadCrumbs.Add(new BreadCrumb()
            {
                Current = true,
                Title   = title
            });
            ((dynamic)base.ViewBag).BreadCrumb = breadCrumbs;

            IEnumerable <Post> postLocalized = null;

            if (posts.IsAny <Post>())
            {
                postLocalized = from x in posts
                                select new Post()
                {
                    Id                = x.Id,
                    MenuId            = x.MenuId,
                    VirtualCategoryId = x.VirtualCategoryId,
                    Language          = x.Language,
                    Status            = x.Status,
                    SeoUrl            = x.SeoUrl,
                    ImageBigSize      = x.ImageBigSize,
                    ImageMediumSize   = x.ImageMediumSize,
                    ImageSmallSize    = x.ImageSmallSize,
                    Price             = x.Price,
                    Discount          = x.Discount,
                    ProductHot        = x.ProductHot,
                    OutOfStock        = x.OutOfStock,
                    ProductNew        = x.ProductNew,
                    VirtualCatUrl     = x.VirtualCatUrl,
                    StartDate         = x.StartDate,
                    PostType          = x.PostType,
                    OldOrNew          = x.OldOrNew,
                    MenuLink          = x.MenuLink,

                    Title           = x.GetLocalizedByLocaleKey(x.Title, x.Id, languageId, "Post", "Title"),
                    ProductCode     = x.GetLocalizedByLocaleKey(x.ProductCode, x.Id, languageId, "Post", "ProductCode"),
                    TechInfo        = x.GetLocalizedByLocaleKey(x.TechInfo, x.Id, languageId, "Post", "TechInfo"),
                    ShortDesc       = x.GetLocalizedByLocaleKey(x.ShortDesc, x.Id, languageId, "Post", "ShortDesc"),
                    Description     = x.GetLocalizedByLocaleKey(x.Description, x.Id, languageId, "Post", "Description"),
                    MetaTitle       = x.GetLocalizedByLocaleKey(x.MetaTitle, x.Id, languageId, "Post", "MetaTitle"),
                    MetaKeywords    = x.GetLocalizedByLocaleKey(x.MetaKeywords, x.Id, languageId, "Post", "MetaKeywords"),
                    MetaDescription = x.GetLocalizedByLocaleKey(x.MetaDescription, x.Id, languageId, "Post", "MetaDescription")
                };

                Helper.PageInfo pageInfo = new Helper.PageInfo(ExtentionUtils.PageSize, page, paging.TotalRecord, (int i) => base.Url.Action("GetContent", "Menu", new { page = i }));
                ((dynamic)base.ViewBag).PageInfo  = pageInfo;
                ((dynamic)base.ViewBag).CountItem = pageInfo.TotalItems;
                ((dynamic)base.ViewBag).MenuId    = postLocalized.ElementAt(0).MenuId;
            }
            ((dynamic)base.ViewBag).Title = title;
            return(base.PartialView(postLocalized));
        }