private PagedRecords GetRecords( Entity entity, NameValueCollection request, TableInfo tableInfo, Action<IList<BaseFilter>> filtersMutator) { var filterRecord = create_filter_record(entity, request); var filters = _filterFactory.BuildFilters(filterRecord).ToList(); if (filtersMutator != null) { filtersMutator(filters); } var pagedRecords = _entitiesSource.GetRecords( entity, filters, tableInfo.SearchQuery, tableInfo.Order, tableInfo.OrderDirection, false, tableInfo.Page, tableInfo.PerPage); pagedRecords.Filters = filters; return pagedRecords; }
public PagedRecords GetRecords( Entity entity, NameValueCollection request, TableInfo tableInfo) { return GetRecords(entity, request, tableInfo, null); }
public EntitiesChangesModel( Entity entity, PagedRecords pagedRecords, TableInfo tableInfo, string url) : base(entity, pagedRecords, tableInfo, url) { }
public virtual ActionResult Index(string entityName, TableInfo tableInfo) { var entity = Admin.EntitiesTypes .FirstOrDefault(x => x.Name == entityName); if (entity == null) { throw new NoNullAllowedException("entity is null"); } entity.Fill(Request); var filters = _filterFactory.BuildFilters(entity).ToList(); var pagedRecords = _entitiesSource.GetRecords( entity, filters, tableInfo.SearchQuery, tableInfo.Order, tableInfo.OrderDirection, false, tableInfo.Page, tableInfo.PerPage); if (pagedRecords.Records.IsNullOrEmpty() && tableInfo.Page > 1) { return RedirectToAction( "Index", PrepareRouteValues( entityName, "1", filters, tableInfo)); } var url = Url.Action( "Index", PrepareRouteValues( entityName, "-page-", filters, tableInfo)) .Replace("-page-", "{0}"); var model = new EntitiesIndexModel { Data = pagedRecords.Records, Columns = entity.DisplayProperties .Select(x => new Column(x, tableInfo.Order, tableInfo.OrderDirection)).ToList(), Entity = entity, Pager = new PagerInfo(url, tableInfo.PerPage, tableInfo.Page, pagedRecords.TotalItems), Filters = filters.Where(x => x.DisplayInUI).ToList(), TableInfo = tableInfo, Configuration = _configuration }; return View(model); }
public EntitiesIndexModel( Entity entity, PagedRecords pagedRecords, TableInfo tableInfo, string url) { Data = pagedRecords.Records; Columns = entity.DisplayProperties .Select(x => new Column(x, tableInfo.Order, tableInfo.OrderDirection)).ToList(); Entity = entity; Pager = new PagerInfo(url, tableInfo.PerPage, tableInfo.Page, pagedRecords.TotalItems); Filters = pagedRecords.Filters.Where(x => x.DisplayInUI).ToList(); TableInfo = tableInfo; }
public IList<ChangeRow> GetLastChanges(int quantity) { var changeEntity = _admin.ChangeEntity; if (changeEntity == null) { return new List<ChangeRow>(); } var tableInfo = new TableInfo { Page = 1, PerPage = quantity, Order = nameof(IEntityChange.ChangedOn), OrderDirection = "desc" }; var pagedRecords = GetRecords(changeEntity, null, tableInfo); return pagedRecords.Records.Select(x => new ChangeRow(x)).ToList(); }
public PagedRecords GetChanges( Entity entityChangesFor, string key, NameValueCollection request, TableInfo tableInfo) { var changeEntity = _admin.ChangeEntity; return GetRecords(changeEntity, request, tableInfo, filters => { if (key.IsNullOrWhiteSpace() == false) { filters.Add(new ForeignEntityFilter(changeEntity["EntityKey"], key)); } if (entityChangesFor != null) { filters.Add(new ChangeEntityFilter(changeEntity["EntityName"], entityChangesFor.Name)); } }); }
public virtual ActionResult Changes(string entityName, string key, TableInfo tableInfo) { var entityChangesFor = _admin.GetEntity(entityName); var pagedRecords = _recordsService .GetChanges(entityChangesFor, key, Request.Form, tableInfo); if (pagedRecords.Records.IsNullOrEmpty() && tableInfo.Page > 1) { return RedirectToAction( "Changes", PrepareRouteValues( entityName, "1", pagedRecords.Filters, tableInfo)); } var url = Url.Action( "Changes", PrepareRouteValues( entityName, "-page-", pagedRecords.Filters, tableInfo)) .Replace("-page-", "{0}"); var model = new EntitiesChangesModel( _admin.ChangeEntity, pagedRecords, tableInfo, url) { EntityChangesFor = entityChangesFor, Key = key, Configuration = _configuration, ChangeEnabled = _admin.ChangeEntity != null }; return View(model); }
public virtual ActionResult Index(string entityName, TableInfo tableInfo) { var entity = _admin.GetEntity(entityName); if (entity == null) { throw new NoNullAllowedException("entity is null"); } var pagedRecords = _recordsService.GetRecords(entity, Request.Form, tableInfo); if (pagedRecords.Records.IsNullOrEmpty() && tableInfo.Page > 1) { return RedirectToAction( "Index", PrepareRouteValues( entityName, "1", pagedRecords.Filters, tableInfo)); } var url = Url.Action( "Index", PrepareRouteValues( entityName, "-page-", pagedRecords.Filters, tableInfo)) .Replace("-page-", "{0}"); var model = new EntitiesIndexModel(entity, pagedRecords, tableInfo, url) { Configuration = _configuration, ChangeEnabled = _admin.ChangeEntity != null }; return View(model); }
protected virtual RouteValueDictionary PrepareRouteValues( string entityName, string page, IEnumerable<BaseFilter> filters, TableInfo tableInfo) { var routeValues = new Dictionary<string, object> { { "entityName", entityName }, { _configuration.PageRequestName, page }, { _configuration.PerPageRequestName, tableInfo.PerPage } }; if (!tableInfo.SearchQuery.IsNullOrEmpty()) { routeValues.Add(_configuration.SearchQueryRequestName, tableInfo.SearchQuery); } if (!tableInfo.Order.IsNullOrEmpty() && !tableInfo.OrderDirection.IsNullOrEmpty()) { routeValues.Add(_configuration.OrderRequestName, tableInfo.Order); routeValues.Add(_configuration.OrderDirectionRequestName, tableInfo.OrderDirection); } foreach (var filter in filters.Where(x => x.DisplayInUI && !x.Value.IsNullOrEmpty())) { routeValues.Add(filter.Property.Name, filter.Value); } return new RouteValueDictionary(routeValues); }
public virtual ActionResult Changes(string entityName, TableInfo tableInfo) { var entityChangesFor = AdminInitialise.EntitiesTypes .FirstOrDefault(x => x.Name == entityName); if (entityChangesFor == null) { throw new NoNullAllowedException("entity is null"); } var changeEntity = AdminInitialise.ChangeEntity; var filters = PrepareFilters(changeEntity); var pagedRecords = _entitiesSource.GetChangesRecords( entityChangesFor, tableInfo.Page, tableInfo.PerPage, filters, tableInfo.SearchQuery, tableInfo.Order, tableInfo.OrderDirection); if (pagedRecords.Records.IsNullOrEmpty() && tableInfo.Page > 1) { return RedirectToAction( "Changes", PrepareRouteValues( entityName, "1", filters, tableInfo)); } var url = Url.Action( "Changes", PrepareRouteValues( entityName, "-page-", filters, tableInfo)) .Replace("-page-", "{0}"); var model = new EntitiesChangesModel { Data = pagedRecords.Records, Columns = changeEntity.DisplayProperties .Select(x => new Column(x, tableInfo.Order, tableInfo.OrderDirection)).ToList(), Entity = changeEntity, EntityChangesFor = entityChangesFor, Pager = new PagerInfo(url, tableInfo.PerPage, tableInfo.Page, pagedRecords.TotalItems), Filters = filters, TableInfo = tableInfo, Configuration = _configuration }; return View(model); }
public virtual ActionResult Changes(string entityName, string key, TableInfo tableInfo) { var entityChangesFor = Admin.EntitiesTypes .FirstOrDefault(x => x.Name == entityName); if (entityChangesFor == null) { throw new NoNullAllowedException("entity is null"); } var changeEntity = Admin.ChangeEntity; changeEntity.Fill(Request); var filters = _filterFactory.BuildFilters(Admin.ChangeEntity).ToList(); if (key.IsNullOrWhiteSpace() == false) { filters.Add(new ForeignEntityFilter(changeEntity["EntityKey"], key)); } filters.Add(new ChangeEntityFilter(changeEntity["EntityName"], entityName)); var pagedRecords = _entitiesSource.GetRecords( changeEntity, filters, tableInfo.SearchQuery, tableInfo.Order, tableInfo.OrderDirection, false, tableInfo.Page, tableInfo.PerPage); if (pagedRecords.Records.IsNullOrEmpty() && tableInfo.Page > 1) { return RedirectToAction( "Changes", PrepareRouteValues( entityName, "1", filters, tableInfo)); } var url = Url.Action( "Changes", PrepareRouteValues( entityName, "-page-", filters, tableInfo)) .Replace("-page-", "{0}"); var model = new EntitiesChangesModel { Data = pagedRecords.Records, Columns = changeEntity.DisplayProperties .Select(x => new Column(x, tableInfo.Order, tableInfo.OrderDirection)).ToList(), Entity = changeEntity, EntityChangesFor = entityChangesFor, Pager = new PagerInfo(url, tableInfo.PerPage, tableInfo.Page, pagedRecords.TotalItems), Filters = filters.Where(x => x.DisplayInUI).ToList(), TableInfo = tableInfo, Configuration = _configuration, Key = key }; return View(model); }