public void TestThatFilterOnNameAlexReturnsAlex()
 {
     _param.GlobalSearch = Alex.Name;
     _filter = new DatatableFilter<Person>(_param, _properties);
     IQueryable<Person> filtered = _filter.Filter(People);
     Assert.That(filtered, Is.EquivalentTo(new[] {Alex}), "There's only one person with name Alex");
 }
 public void TestThatFilterOnSpecialCharactersDoesntFailAndReturnsNobody()
 {
     _param.GlobalSearch = "&é'(§è!çà)'$^µù=:;~`µ´][*¨\\";
     _filter = new DatatableFilter<Person>(_param, _properties);
     IQueryable<Person> filtered = _filter.Filter(People);
     Assert.That(filtered.Count(), Is.EqualTo(0), "There are no people with a special name like that.");
 }
 public void TestThatFilterOnZReturnsNobody()
 {
     _param.GlobalSearch = "z";
     _filter = new DatatableFilter<Person>(_param, _properties);
     IQueryable<Person> filtered = _filter.Filter(People);
     Assert.That(filtered.Count(), Is.EqualTo(0), "There are no people with the letter 'Z' in their name");
 }
示例#4
0
        public void TestThatSearchingForBirthdayWithYear1990ReturnsAlex()
        {
            _param.GlobalSearch = "1990";
            _filter             = new DatatableFilter <Person>(_param, _properties);
            IQueryable <Person> filtered = _filter.Filter(People);

            Assert.That(filtered, Is.EquivalentTo(new[] { Alex }));
        }
示例#5
0
        public void TestThatNoFilterDoesntChangeTheEntities()
        {
            _filter = new DatatableFilter <Person>(_param, _properties);
            IQueryable <Person> filtered = _filter.Filter(People);

            Assert.That(filtered, Is.EquivalentTo(People),
                        "The filter was empty, the list of people should be unchanged");
        }
示例#6
0
        public void TestThatFilterOnSpecialCharactersDoesntFailAndReturnsNobody()
        {
            _param.GlobalSearch = "&é'(§è!çà)'$^µù=:;~`µ´][*¨\\";
            _filter             = new DatatableFilter <Person>(_param, _properties);
            IQueryable <Person> filtered = _filter.Filter(People);

            Assert.That(filtered.Count(), Is.EqualTo(0), "There are no people with a special name like that.");
        }
示例#7
0
        public void TestThatFilterOnZReturnsNobody()
        {
            _param.GlobalSearch = "z";
            _filter             = new DatatableFilter <Person>(_param, _properties);
            IQueryable <Person> filtered = _filter.Filter(People);

            Assert.That(filtered.Count(), Is.EqualTo(0), "There are no people with the letter 'Z' in their name");
        }
示例#8
0
        public void TestThatFilterOnNameAlexReturnsAlex()
        {
            _param.GlobalSearch = Alex.Name;
            _filter             = new DatatableFilter <Person>(_param, _properties);
            IQueryable <Person> filtered = _filter.Filter(People);

            Assert.That(filtered, Is.EquivalentTo(new[] { Alex }), "There's only one person with name Alex");
        }
 public void TestThatFilterOnNameContainingAReturnsAlexAnnAndMatt()
 {
     _param.GlobalSearch = "a";
     _filter = new DatatableFilter<Person>(_param, _properties);
     IQueryable<Person> filtered = _filter.Filter(People);
     Assert.That(filtered, Is.EquivalentTo(new[] {Alex, Ann, Matt}),
                 "Alex, Ann and Matt all have the letter 'a' in their name");
 }
示例#10
0
        public void TestThatFilterOnNameContainingAReturnsAlexAnnAndMatt()
        {
            _param.GlobalSearch = "a";
            _filter             = new DatatableFilter <Person>(_param, _properties);
            IQueryable <Person> filtered = _filter.Filter(People);

            Assert.That(filtered, Is.EquivalentTo(new[] { Alex, Ann, Matt }),
                        "Alex, Ann and Matt all have the letter 'a' in their name");
        }
示例#11
0
        public JsonResult GetStudentDetail()
        {
            var  StudentData = new object();
            bool bStatus     = false;
            int  totlaRecord = 0;

            List <Student> lstStudent   = new List <Student>();
            int            nTotalRecord = 0;

            try
            {
                string[] TableField = { "", "ID", "FirstName", "LastName", "Class", "Subject", "Marks" };

                DatatableFilter datatable = new DatatableFilter();

                //Here I am getting the search query value form the datatable search input.
                datatable.Search = Request.Form["search[value]"].ToString();


                //here I am getting the start index and row size selected by the user from the datatable.
                datatable.Start = Convert.ToInt32(Request.Form["start"].ToString());

                datatable.RowSize = Convert.ToInt32(Request.Form["length"].ToString());

                //Here I am getting the sort column parameter, on which data will be sorted.
                datatable.SortColumn = TableField[Convert.ToInt32(Request.Form["order[0][column]"])];

                //Here I am getting the request parameter for sort type to be implemented
                datatable.SortDirection = Convert.ToString(Request.Form["order[0][dir]"]);

                lstStudent = _studentService.ListAsync(datatable).Result;

                totlaRecord = _studentService.TotlaRecords(datatable);

                if (lstStudent.Count > 0)
                {
                    bStatus = true;
                }
            }
            catch (Exception ex)
            {
                bStatus = false;
            }

            //Returning the object containing all the required data.
            StudentData = new { status = bStatus, data = lstStudent, recordsTotal = totlaRecord, recordsFiltered = totlaRecord };
            return(Json(StudentData));
        }
示例#12
0
        /// <summary>
        ///     Applies the global filter, if any, to the entities
        /// </summary>
        /// <param name="param">
        ///     The param containing the global filter
        /// </param>
        /// <returns>
        ///     the filtered entities
        /// </returns>
        private IQueryable <TEntity> FilterGlobal(DatatableParam param)
        {
            var filter = new DatatableFilter <TEntity>(param, _properties);

            return(filter.Filter(_entities));
        }
 public void TestThatSearchingForBirthdayWithYear1990ReturnsAlex()
 {
     _param.GlobalSearch = "1990";
     _filter = new DatatableFilter<Person>(_param, _properties);
     IQueryable<Person> filtered = _filter.Filter(People);
     Assert.That(filtered, Is.EquivalentTo(new[] {Alex}));
 }
 public void TestThatNoFilterDoesntChangeTheEntities()
 {
     _filter = new DatatableFilter<Person>(_param, _properties);
     IQueryable<Person> filtered = _filter.Filter(People);
     Assert.That(filtered, Is.EquivalentTo(People),
                 "The filter was empty, the list of people should be unchanged");
 }
 public async Task <List <Student> > ListAsync(DatatableFilter datatableFilter = null)
 {
     return(_studentRepository.ListAsync(datatableFilter));
 }
 public int TotlaRecords(DatatableFilter datatableFilter = null)
 {
     return(_studentRepository.TotalRecords(datatableFilter));
 }
        public List <Student> ListAsync(DatatableFilter datatableFilter = null)
        {
            try
            {
                if (datatableFilter != null)
                {
                    var Students = _context.Students.ToList();

                    Students.ForEach(st =>
                    {
                        st.Subjects = _context.Subjects.Where(su => su.StudentId == st.Id).ToList();
                        st.Subjects.ForEach(su => su.Student = null);
                    }
                                     );

                    //Search
                    if (!String.IsNullOrWhiteSpace(datatableFilter.Search))
                    {
                        Students = Students.Where(st =>
                                                  st.FirstName.Contains(datatableFilter.Search) ||
                                                  st.LastName.Contains(datatableFilter.Search) ||
                                                  st.Class.Contains(datatableFilter.Search) ||
                                                  st.Subjects.Exists(su => su.SubjectName.Contains(datatableFilter.Search))

                                                  ).ToList();
                    }


                    //Sorting
                    if (!String.IsNullOrWhiteSpace(datatableFilter.SortColumn))
                    {
                        switch (datatableFilter.SortDirection)
                        {
                        case "asc":
                        {
                            //var OrderedStudent = from s in Students orderby datatableFilter.SortColumn, s.FirstName select s;
                            var OrderedStudent = Sorting.OrderByField <Student>(Students.AsQueryable(), datatableFilter.SortColumn, true).ToList();
                            Students = OrderedStudent;
                            break;
                        }

                        case "desc":
                        {
                            var OrderedStudent = Sorting.OrderByField <Student>(Students.AsQueryable(), datatableFilter.SortColumn, false).ToList();
                            Students = OrderedStudent;
                            break;
                        }

                        default:
                        {
                            var OrderedStudent = from s in Students orderby s.FirstName ascending select s;
                            Students = OrderedStudent.ToList();
                            break;
                        }
                        }
                    }
                    else
                    {
                        var OrderedStudent = from s in Students orderby s.FirstName ascending select s;
                        Students = OrderedStudent.ToList();
                    }
                    //Students = (from s in Students orderby s.FirstName ascending select s).ToList();



                    //Paging
                    if (datatableFilter.RowSize > 0)
                    {
                        Students = Students.Skip(datatableFilter.Start).Take(datatableFilter.RowSize).ToList();
                    }

                    return(Students);
                }
                else
                {
                    return(_context.Students.ToListAsync().Result);
                }
            }
            catch (Exception exception)
            {
                throw;
            }
            return(null);
        }