public ActionResult <CaseData> GetCases(string search = "", string sort = "", int pageNumber = 1, int pageSize = 10) { var caseDbSet = _context.cases; IQueryable <Cases> totalCases = caseDbSet.OrderBy(Case => Case.Id); string _search = search.ToLower(); if (search != "") { totalCases = caseDbSet.Where(a => a.CaseNo.ToLower().Contains(_search) || a.CaseType.ToLower().Contains(_search) || a.FillingDate.ToString().Contains(_search) || a.Judge.ToLower().Contains(_search)) .OrderBy(Case => Case.Id); } if (sort != "") { totalCases = new SortCases().Sort(sort, totalCases); } var resultData = new CaseData { TotalCount = caseDbSet.Count(), Cases = totalCases.Skip((pageNumber - 1) * pageSize).Take(pageSize).ToList() }; return(resultData); }
public static uint[] GenerateArray(int Length, SortCases Case, SortNames Name) { uint[] garr = new uint[Length]; switch (Case) { case SortCases.Best: switch (Name) { case (SortNames.RadixSort): int ind = 0; while (ind < Length) { for (uint m = 0; m <= 255; m++) { for (uint k = 0; k <= 255; k++) { for (uint l = 0; l <= 255; l++) { for (uint j = 0; j <= 255; j++) { garr[ind] = (uint)(1000000000 * m + 1000000 * k + 1000 * l + j); ind++; if (ind >= Length) { break; } } if (ind >= Length) { break; } } if (ind >= Length) { break; } } if (ind >= Length) { break; } } } break; default: for (int i = 0; i < Length; i++) { garr[i] = (uint)i; } break; } break; case SortCases.Ordinary: Random rnd = new Random(); for (int i = 0; i < Length; i++) { garr[i] = (uint)(rnd.NextDouble() * 3000000); } break; case SortCases.Worst: switch (Name) { case (SortNames.SelectionSort): int mid = Length / 2; for (int i = 0; i < mid; i++) { garr[i] = (uint)(Length - i - 1); } for (int i = mid; i < Length; i++) { garr[i] = (uint)(i - mid); } break; case (SortNames.RadixSort): int ind = 0; while (ind < Length) { for (uint m = 255; m >= 0; m--) { m = m << 24; for (uint k = 255; k >= 0; k--) { k = k << 16; for (uint l = 255; l >= 0; l--) { l = l << 8; for (uint j = 255; j >= 0; j--) { garr[ind] = (uint)(m + k + l + j); ind++; if (ind >= Length) { break; } } if (ind >= Length) { break; } } if (ind >= Length) { break; } } if (ind >= Length) { break; } } } break; default: for (int i = 0; i < Length; i++) { garr[i] = (uint)(Length - i - 1); } //for (int i = 0; i < Length; i++) //{ // garr[i] = 1000; //} break; } //for (int i = 0; i < Length; i++) //{ // garr[i] = 1000; //} break; default: Console.WriteLine("Указан неизвестный вариант генерации массива."); break; } return(garr); }