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); }