예제 #1
0
        public ActionResult NewsIndexot(string sortOrder, string sortName, string sortGroup, int?page, string currentNewsCodeFilter, string currentNewsNameFilter, string Newsname, string currentGroupNewsFilter, string GroupNews, string currentNewsAmount)
        {
            if (Request.HttpMethod == "GET")
            {
                Newsname  = currentNewsNameFilter;
                GroupNews = currentGroupNewsFilter;
            }
            else
            {
                page = 1;
            }

            ViewBag.CurrentNewsNameFilter  = Newsname;
            ViewBag.currentGroupNewsFilter = GroupNews;

            ViewBag.CurrentSortOrder = sortOrder;
            ViewBag.SortOrderParm    = sortOrder == "ord asc" ? "ord desc" : "ord asc";

            // Sort Name (Truyền sortName khi phân trang)
            if (sortName != "")
            {
                ViewBag.CurrentSortName = sortName;
                ViewBag.SortNameParm    = sortName == "name asc" ? "name desc" : "name asc";
            }
            // Sort Name (Truyền sortName khi sắp xếp)
            if (Session["sortName"] != null)
            {
                sortName = Session["sortName"].ToString();
                ViewBag.CurrentSortName = Session["sortName"].ToString();
                Session["sortName"]     = null;
            }
            ViewBag.SortNameParm = sortName == "name asc" ? "name desc" : "name asc";

            ViewBag.CurrentSortGroup = sortGroup;
            ViewBag.SortGroupParm    = sortGroup == "group asc" ? "group desc" : "group asc";
            string Lang = Session["Lang"].ToString();
            var    all  = db.sp_News_GetByAll(Lang).OrderByDescending(p => p.Id).ToList();

            #region [Tìm kiếm]
            // Tìm theo tên Tin tức
            if (!String.IsNullOrEmpty(Newsname))
            {
                if (Newsname != "Tiêu đề tin")
                {
                    all = all.Where(p => p.Name.ToUpper().Contains(Newsname.ToUpper())).OrderByDescending(p => p.Id).ToList();
                }
            }

            // Tìm theo nhóm Tin tức
            if (!String.IsNullOrEmpty(GroupNews))
            {
                int groupid = Int32.Parse(GroupNews);
                all = all.Where(p => p.IdGroup == groupid).OrderByDescending(p => p.Id).ToList();
            }
            if (Session["Namesearch"] != null)
            {
                all = all.Where(p => p.Name.ToUpper().Contains(Session["Namesearch"].ToString().ToUpper())).OrderByDescending(p => p.Id).ToList();
            }
            if (Session["GroupNews"] != null)
            {
                if (Session["Namesearch"] != null)
                {
                    all = all.Where(p => p.IdGroup == int.Parse(Session["GroupNews"].ToString()) && p.Name.ToUpper().Contains(Session["Namesearch"].ToString().ToUpper())).OrderByDescending(p => p.Id).ToList();
                }
                else
                {
                    all = all.Where(p => p.IdGroup == int.Parse(Session["GroupNews"].ToString())).OrderByDescending(p => p.Id).ToList();
                }
                Session["GroupNews"] = null;
            }
            if (Session["Namesearch"] != null)
            {
                Session["Namesearch"] = null;
            }
            #endregion

            #region [Sắp xếp]
            switch (sortOrder)
            {
            case "ord desc":
                all = all.OrderByDescending(p => p.Ord).ToList();
                break;

            case "ord asc":
                all = all.OrderBy(p => p.Ord).ToList();
                break;

            default:
                break;
            }

            switch (sortName)
            {
            case "name desc":
                all = all.OrderByDescending(p => p.Name).ToList();
                break;

            case "name asc":
                all = all.OrderBy(p => p.Name).ToList();
                break;

            default:
                break;
            }
            #endregion

            if (Session["DeletePro"] != null)
            {
                var a = Session["DeletePro"].ToString();
                ViewBag.DelErr       = "<p class='require'>" + a + "</p>";
                Session["DeletePro"] = null;
            }

            int pageSize = 20;
            if (currentNewsAmount != null && currentNewsAmount != "")
            {
                pageSize = Convert.ToInt32(currentNewsAmount);
            }
            int pageNumber = (page ?? 1);

            #region [Get Last Page]
            if (page != null)
            {
                ViewBag.mPage = (int)page;
            }
            else
            {
                ViewBag.mPage = 1;
            }


            int lastPage = all.Count / pageSize;
            if (all.Count % pageSize > 0)
            {
                lastPage++;
            }
            ViewBag.LastPage = lastPage;

            ViewBag.PageSize = pageSize;
            #endregion

            #region [view drop search]
            var cat = db.GroupNews.Where(n => n.Active == true).ToList();
            for (int i = 0; i < cat.Count; i++)
            {
                ViewBag.GroupNews = new SelectList(cat, "Id", "Name");
            }
            #endregion

            #region [Số Tin tức hiển thị trên trang]
            // Số Tin tức hiển thị trên trang
            List <SelectListItem> items = new List <SelectListItem>();
            for (int i = 10; i <= 100; i += 10)
            {
                if (i == pageSize)
                {
                    items.Add(new SelectListItem {
                        Text = i + " Tin tức / trang", Value = i + "", Selected = true
                    });
                }
                else
                {
                    items.Add(new SelectListItem {
                        Text = i + " Tin tức / trang", Value = i + ""
                    });
                }
            }
            ViewBag.ddlNewsAmount = items;
            #endregion

            ViewBag.TotalNews = db.News.Where(x => x.Lang == Lang).Count();

            // Phân trang
            PagedList <sp_News_GetByAll_Result> Newss = (PagedList <sp_News_GetByAll_Result>)all.ToPagedList(pageNumber, pageSize);

            if (Request.IsAjaxRequest())
            {
                return(PartialView("_PartialNewsIndex", Newss));
            }

            return(View(Newss));
        }