Exemple #1
0
        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);
        }