public virtual ActionResult _Index(Func <IQueryable, IQueryable> filter)
        {
            var page     = int.Parse(RequestManager.QueryStringDictionary["Page"].ToString());
            var pageSize = int.Parse(RequestManager.QueryStringDictionary["PageSize"].ToString());
            var orderBy  = RequestManager.QueryStringDictionary["OrderBy"].ToString();

            var viewModel = new DynamicIndexViewModel(DynamicEntitySearcher.DynamicEntityMetadata, RequestManager.QueryStringDictionary);

            var entityType = DynamicEntitySearcher.DynamicEntityMetadata.EntityMetadata.EntityType;
            var filters    = viewModel.GetDynamicFilters().Select(x => (Func <IQueryable, IQueryable>)x.Filter).ToList();

            if (filter != null)
            {
                filters.Add(filter);
            }
            var models = DynamicRepository.GetItems(entityType, filters, page, pageSize, orderBy, DynamicEntitySearcher.DynamicEntityMetadata.GetListIncludes().ToArray());

            viewModel             = new DynamicIndexViewModel(DynamicEntitySearcher.DynamicEntityMetadata, RequestManager.QueryStringDictionary, models);
            viewModel.RecordCount = DynamicRepository.GetRecordCount(DynamicEntitySearcher.DynamicEntityMetadata.EntityMetadata.EntityType, filters);

            var routeValueDictionary = viewModel.RouteValueDictionary.Clone();

            routeValueDictionary.Remove("ReturnUrl");
            viewModel.RouteValueDictionary["ReturnUrl"] = ReturnUrlCalculator.GetReturnUrl("Index", viewModel.DynamicEntityMetadata.EntityMetadata.TypeName, routeValueDictionary);

            return(ControllerManager.PartialView("_DynamicIndex", viewModel));
        }
        public virtual ActionResult _Index(Func<IQueryable, IQueryable> filter)
        {
            var page = int.Parse(RequestManager.QueryStringDictionary["Page"].ToString());
            var pageSize = int.Parse(RequestManager.QueryStringDictionary["PageSize"].ToString());
            var orderBy = RequestManager.QueryStringDictionary["OrderBy"].ToString();

            var viewModel = new DynamicIndexViewModel(DynamicEntitySearcher.DynamicEntityMetadata, RequestManager.QueryStringDictionary);

            var entityType = DynamicEntitySearcher.DynamicEntityMetadata.EntityMetadata.EntityType;
            var filters = viewModel.GetDynamicFilters().Select(x => (Func<IQueryable, IQueryable>)x.Filter).ToList();
            if (filter != null)
                filters.Add(filter);
            var models = DynamicRepository.GetItems(entityType, filters, page, pageSize, orderBy, DynamicEntitySearcher.DynamicEntityMetadata.GetListIncludes().ToArray());

            viewModel = new DynamicIndexViewModel(DynamicEntitySearcher.DynamicEntityMetadata, RequestManager.QueryStringDictionary, models);
            viewModel.RecordCount = DynamicRepository.GetRecordCount(DynamicEntitySearcher.DynamicEntityMetadata.EntityMetadata.EntityType, filters);

            var routeValueDictionary = viewModel.RouteValueDictionary.Clone();
            routeValueDictionary.Remove("ReturnUrl");
            viewModel.RouteValueDictionary["ReturnUrl"] = ReturnUrlCalculator.GetReturnUrl("Index", viewModel.DynamicEntityMetadata.EntityMetadata.TypeName, routeValueDictionary);

            return ControllerManager.PartialView("_DynamicIndex", viewModel);
        }