// 焦點專欄 - 列表 public ActionResult EducationList(int?eduTypeID, int?page) { if (!eduTypeID.HasValue) { return(View()); } //======語系取得======== string langCd = GetLang(); //====================== EducationListFilter filter = new EducationListFilter() { CurrentPage = page ?? 1, LangCode = langCd }; eduTypeID = eduTypeID ?? 1; EducationRepository repo = new EducationRepository(); EducationResult mdoel = repo.GetList((int)eduTypeID, filter); GetLang(); return(View(mdoel)); }
public EducationResult GetPage(string filter, int?draw, int?initialPage, int?pageSize, string sortDir, string sortBy) { using (SATEntities db = new SATEntities()) { var data = db.tb_Education.ToList(); int recordsTotal = data.Count(); if (!string.IsNullOrEmpty(filter)) { data = data.Where(x => x.EduName.Contains(filter)).ToList(); } int recordsFiltered = data.Count(); switch (sortBy) { case "EduCode": data = (sortDir == "asc") ? data.OrderBy(x => x.EduCode).ToList() : data.OrderByDescending(x => x.EduCode).ToList(); break; case "EduName": data = (sortDir == "asc") ? data.OrderBy(x => x.EduName).ToList() : data.OrderByDescending(x => x.EduName).ToList(); break; case "Status": data = (sortDir == "asc") ? data.OrderBy(x => x.EduStatus).ToList() : data.OrderByDescending(x => x.EduStatus).ToList(); break; } int start = initialPage.HasValue ? (int)initialPage / (int)pageSize : 0; int length = pageSize ?? 10; var list = data.Select((s, i) => new EducationViewModel() { RowNumber = ++i, EduID = s.EduID, EduCode = s.EduCode, EduName = s.EduName, EduStatus = s.EduStatus, Status = s.EduStatus == true ? EnumType.StatusName.Active : EnumType.StatusName.NotActive }).Skip(start * length).Take(length).ToList(); EducationResult result = new EducationResult(); result.draw = draw ?? 0; result.recordsTotal = recordsTotal; result.recordsFiltered = recordsFiltered; result.data = list; return(result); } }
/// <summary> /// 列表 /// </summary> /// <param name="filter"></param> /// <returns></returns> public EducationResult GetList(int eduTypeID, EducationListFilter filter, int?coustomPageSize = null, string isIndex = null) { EducationResult result = new EducationResult(); List <EducationData> data = new List <EducationData>(); using (var db = new TCGDB(_connectionString)) { try { var source = db.EDU .AsEnumerable() .Where(s => (string.IsNullOrEmpty(filter.LangCode) ? true : s.LANG_ID == filter.LangCode) && s.STATUS == "Y" && s.CATE_ID == eduTypeID) .OrderByDescending(o => o.SORT) //排序大到小、發布日期新到舊、資料建檔日期新到舊 .ThenByDescending(s => s.C_DATE) .ThenByDescending(d => d.BD_DT) .ToList(); foreach (var item in source) { EducationData temp = new EducationData() { ID = item.ID, Title = item.C_TITLE, PagingList = GetPagingListByID(item.ID), PublishDateString = item.C_DATE.Value.ToString("yyyy-MM-dd"), }; temp.Remark = GetFirstPagingRemark(temp.PagingList); data.Add(temp); } result.Data = data; result = this.ListPagination(ref result, filter.CurrentPage, coustomPageSize ?? Convert.ToInt32(PublicMethodRepository.GetConfigAppSetting("DefaultPageSize"))); } catch (Exception ex) { throw ex; } } result.EduTypeInfo = GetEduCateByID(eduTypeID, filter.LangCode); return(result); }
/// <summary> /// [前台] 列表分頁處理 /// </summary> /// <param name="data"></param> /// <param name="page"></param> /// <returns></returns> public EducationResult ListPagination(ref EducationResult model, int page, int pageSize) { int startRow = 0; PaginationResult paginationResult = null; if (pageSize > 0) { //分頁 startRow = (page - 1) * pageSize; paginationResult = new PaginationResult() { CurrentPage = page, DataCount = model.Data.Count(), PageSize = pageSize, FirstPage = 1, LastPage = model.Data.Count() == 0 ? 1 : Convert.ToInt32(Math.Ceiling((decimal)model.Data.Count() / pageSize)) }; } model.Data = model.Data.Skip(startRow).Take(pageSize).ToList(); model.Pagination = paginationResult; return(model); }