Ejemplo n.º 1
0
        public SearchWithOrderModel ValidateFilter(SearchWithOrderModel filter = null)
        {
            if (filter == null || string.IsNullOrEmpty(filter.SearhTerms))
            {
                return(null);
            }

            return(filter);
        }
Ejemplo n.º 2
0
        private FilterAndSearchModel GetModel(SearchWithOrderModel searchModel = null)
        {
            var manager = new FilterDemoManager();
            SearchWithOrderModel filter    = manager.ValidateFilter(searchModel);
            SearchWithOrderModel orderData = manager.ValidateSorting(searchModel);

            var model = new FilterAndSearchModel();

            model.EmployeeDataItems = manager.GetEmployeeTableItems().WithFilter(filter).WithOrder(orderData);

            return(model);
        }
Ejemplo n.º 3
0
        public SearchWithOrderModel ValidateSorting(SearchWithOrderModel sortData = null)
        {
            if (sortData == null || string.IsNullOrEmpty(sortData.OrderBy))
            {
                return(null);
            }
            else if (string.IsNullOrEmpty(sortData.SortDirection) ||
                     (!sortData.SortDirection.Equals("ASC", StringComparison.InvariantCultureIgnoreCase) &&
                      (!sortData.SortDirection.Equals("DESC", StringComparison.InvariantCultureIgnoreCase))))
            {
                return(null);
            }

            return(sortData);
        }
Ejemplo n.º 4
0
        public PartialViewResult Search(SearchWithOrderModel searchModel)
        {
            var viewModel = GetModel(searchModel);

            return(PartialView("FilterAndSearch/_RenderEmployeeArrivalsPartial", viewModel));
        }
Ejemplo n.º 5
0
        public static List <EmployeeTableItem> WithFilter(this List <EmployeeTableItem> list, SearchWithOrderModel filter)
        {
            if (list == null || filter == null)
            {
                return(list);
            }

            string[] searchTerms = filter.SearhTerms.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
            list = list
                   .Where(p =>
                          searchTerms.Any(term => p.EmployeeID.ToString().Contains(term)) ||
                          searchTerms.Any(term => p.Age.ToString().Contains(term)) ||
                          searchTerms.Any(term => !string.IsNullOrEmpty(p.Email) && p.Email.Contains(term)) ||
                          searchTerms.Any(term => !string.IsNullOrEmpty(p.FullName) && p.FullName.Contains(term)) ||
                          searchTerms.Any(term => !string.IsNullOrEmpty(p.Role) && p.Role.Contains(term)) ||
                          searchTerms.Any(term => p.Teams != null && p.Teams.Contains(term))
                          )
                   .ToList();

            return(list);
        }
Ejemplo n.º 6
0
 public static List <EmployeeTableItem> WithOrder(this List <EmployeeTableItem> list, SearchWithOrderModel orderData)
 {
     if (list == null || orderData == null)
     {
         return(list);
     }
     // Make list sort by direction
     if (orderData.SortDirection.Equals("ASC", System.StringComparison.InvariantCultureIgnoreCase))
     {
         list = list.OrderBy(p => p.GetType().GetProperty(orderData.OrderBy).GetValue(p, null)).ToList();
     }
     else
     {
         list = list.OrderByDescending(p => p.GetType().GetProperty(orderData.OrderBy).GetValue(p, null)).ToList();
     }
     return(list);
 }