Esempio n. 1
0
        public List <CustomerModel> GenerateCustomerList(DataGridRequestQueryString queryString, int rideWith)
        {
            DataGridOrderType orderType = queryString.orderBy == "asc" ? DataGridOrderType.Asc : DataGridOrderType.Desc;

            if (HttpContext.Current.Session["customers"] != null)
            {
                var list = HttpContext.Current.Session["customers"] as List <CustomerModel>;

                if (list.Count == rideWith)
                {
                    var sortedList = Sort(list, queryString.orderedColumnName, orderType);

                    return(sortedList.Skip(queryString.start).Take(queryString.length).ToList());
                }
            }

            var customerList = new List <CustomerModel>();

            #region Generate sample data

            FirstNameList = new List <string>();

            FirstNameList.Add("Mustafa");
            FirstNameList.Add("Ali");
            FirstNameList.Add("Veli");
            FirstNameList.Add("Hakkı");
            FirstNameList.Add("Siraç");
            FirstNameList.Add("Veli");
            FirstNameList.Add("Muhammed");
            FirstNameList.Add("Cetin");
            FirstNameList.Add("Kadir");
            FirstNameList.Add("Serap");
            FirstNameList.Add("Selin");
            FirstNameList.Add("Mehtap");
            FirstNameList.Add("Dursun");
            FirstNameList.Add("Selami");
            FirstNameList.Add("Yavuz");

            LastNameList = new List <string>();
            LastNameList.Add("Korkmaz");
            LastNameList.Add("Kayak");
            LastNameList.Add("Yılmaz");
            LastNameList.Add("Gönenç");
            LastNameList.Add("Türkoglu");
            LastNameList.Add("Eskir");
            LastNameList.Add("Kose");
            LastNameList.Add("Solmaz");
            LastNameList.Add("Turhanlı");
            LastNameList.Add("Tavlı");
            LastNameList.Add("Bozkurt");
            LastNameList.Add("Yıldırım");
            LastNameList.Add("Tatar");
            LastNameList.Add("Kırkıl");
            LastNameList.Add("Cetin");

            PositionList = new List <string>();
            PositionList.Add("Müdür");
            PositionList.Add("Yönetici");
            PositionList.Add("Uzman");
            PositionList.Add("Yetkili");
            PositionList.Add("Tasarımcı");
            PositionList.Add("CEO");
            PositionList.Add("CFO");

            OfficeList = new List <string>();
            OfficeList.Add("Soma");
            OfficeList.Add("Kırkagac");
            OfficeList.Add("Akhisar");
            OfficeList.Add("Salihli");
            OfficeList.Add("Demirci");
            OfficeList.Add("Alaşehir");
            OfficeList.Add("Saruhanlı");
            OfficeList.Add("Golmarmara");


            StartDateList = new List <DateTime>();
            for (int i = 0; i < 20; i++)
            {
                StartDateList.Add(DateTime.Now.AddDays((i + 1) * (-10)));
            }

            SalaryList = new List <decimal>();
            Random random = new Random();
            for (int i = 0; i < 20; i++)
            {
                var d = random.NextDouble() * (500 - 100) + 100;
                SalaryList.Add(Convert.ToDecimal(Math.Round(d, 2)));
            }
            for (int i = 0; i < rideWith; i++)
            {
                var firstName = FirstNameList[random.Next(0, 14)];
                var lastName  = LastNameList[random.Next(0, 14)];
                var position  = PositionList[random.Next(0, 6)];
                var office    = OfficeList[random.Next(0, 7)];
                var startDate = StartDateList[random.Next(0, 19)].ToShortDateString();
                var salary    = SalaryList[random.Next(0, 19)];

                customerList.Add(new CustomerModel
                {
                    FirstName = firstName,
                    LastName  = lastName,
                    Position  = position,
                    Office    = office,
                    Salary    = salary,
                    StartDate = startDate
                });
            }

            #endregion Generate sample data

            HttpContext.Current.Session["customers"] = customerList; // use session as sample customer database to get always same data set in paging

            var customerQuery = Sort(customerList, queryString.orderedColumnName, orderType);

            return(customerQuery.Skip(queryString.start).Take(queryString.length).ToList());
        }
Esempio n. 2
0
        private IOrderedEnumerable <T> Sort <T>(List <T> unSortedlist, string propertyName, DataGridOrderType orderType)
        {
            bool isDateOrdering = propertyName.ToLower().Contains("date");

            PropertyInfo pi = typeof(T).GetProperty(propertyName);

            switch (orderType)
            {
            case DataGridOrderType.Asc:

                if (isDateOrdering)
                {
                    return(unSortedlist.OrderBy(x => DateTime.Parse(pi.GetValue(x, null).ToString())));
                }
                return(unSortedlist.OrderBy(x => pi.GetValue(x, null)));

            case DataGridOrderType.Desc:

                if (isDateOrdering)
                {
                    return(unSortedlist.OrderByDescending(x => DateTime.Parse(pi.GetValue(x, null).ToString())));
                }
                return(unSortedlist.OrderByDescending(x => pi.GetValue(x, null)));

            default: return(null);
            }
        }