/// <summary> /// 根據店號、頁數、排序取得EC資料並顯示在畫面上 /// </summary> /// <param name="storeNo">店號</param> /// <param name="page">目前頁次</param> /// <param name="sort">排序方式</param> /// <returns></returns> public async Task <IActionResult> GetAll(string storeNo, int page = 1, ECSort sort = ECSort.InDate) { ECListViewModel vm = new ECListViewModel(); StoreAndSort param = new StoreAndSort { StoreNo = storeNo, Sort = sort }; //if(data==null || data.First().StoreNo != storeNo||eCSort!=sort) if (data == null || data.First().StoreNo != param.StoreNo || eCSort != param.Sort) { // eCSort = sort; eCSort = param.Sort; //data = await _ecRepo.GetECAsync(SD.ECChkAPIPath + "GetAll?storeno=" + storeNo, sort); data = await _ecRepo.GetECAsync(SD.ECChkAPIPath + "GetAll", param); } //放入EC資料至ViewModel vm.ECList = data.ToList(); var count = vm.ECList.Count(); //頁數資料 vm.PagingInfo = new PagingInfo { CurrentPage = page, ItemsPerPage = PageSize, TotalItems = count, //eCSort = sort eCSort = param.Sort }; //當頁顯示EC資料 vm.ECList = vm.ECList.Skip((vm.PagingInfo.CurrentPage - 1) * PageSize).Take(PageSize).ToList(); return(View(vm)); }
/// <summary> /// 指定排序取得欲顯示的EC資料 /// </summary> /// <param name="dtos">顯示於畫面的EC資料</param> /// <param name="sort">指定排序值</param> /// <returns>排序後的資料</returns> public ICollection <IFECCUTFDto> SortECData(List <IFECCUTFDto> dtos, ECSort sort) { List <IFECCUTFDto> result = new List <IFECCUTFDto>(); //zh-TW 預設用筆劃排序 0x00000404、替代排序為注音 0x00030404 CultureInfo taiwanCulture = new CultureInfo("zh-TW"); CultureStringComparer comparerTaiwan = new CultureStringComparer(taiwanCulture, CompareOptions.None); switch (sort) { case ECSort.Name: result = dtos.OrderBy(a => a.Name, comparerTaiwan).ToList(); break; case ECSort.CompanyName: result = dtos.OrderBy(a => a.CompanyName, comparerTaiwan).ToList(); break; case ECSort.InDate: result = dtos.OrderByDescending(a => a.InDate).ThenBy(a => a.Name).ToList(); break; case ECSort.State: result = dtos.OrderBy(a => a.State).ToList(); break; //case ECSort.NewNumber: // result = dtos.OrderBy(a => a.NewNumber).ToList(); // break; case ECSort.EndThreeYard: result = dtos.OrderBy(a => a.EndThreeYard).ToList(); break; default: //預設以進貨日期排序 result = dtos.OrderBy(a => a.InDate).ToList(); break; } //將頁面資料的溫層及狀態用中文顯示 var data = ChangeName(result); return(data); }