private async Task Fetch_ByEntityType() { var controller = LocalIocManager.Resolve <DataTableController>(); var configurationStore = LocalIocManager.Resolve <IEntityConfigurationStore>(); var input = new DataTableGetDataInput { EntityType = configurationStore.Get(typeof(Person)).TypeShortAlias, Properties = new List <string> { nameof(Person.Id), nameof(Person.FullName), nameof(Person.EmailAddress1), nameof(Person.MobileNumber1), }, CurrentPage = 1, PageSize = int.MaxValue, }; DataTableData data = null; await WithUnitOfWorkAsync(async() => { data = await controller.GetTableDataAsync <Person, Guid>(input, CancellationToken.None); }); }
private async Task <DataTableData> FetchData(string tableId, string expression) { var controller = LocalIocManager.Resolve <DataTableController>(); var input = new DataTableGetDataInput { Id = tableId, CurrentPage = 1, PageSize = int.MaxValue, Filter = new List <ColumnFilterDto>(), SelectedFilters = new List <SelectedStoredFilterDto> { new SelectedStoredFilterDto { Expression = expression, ExpressionType = "jsonlogic", Id = "test", Name = "Test" } }, }; DataTableData data = null; await WithUnitOfWorkAsync(async() => { data = await controller.GetTableDataAsync <Person, Guid>(input, CancellationToken.None); }); return(data); }
public async Task <DataTableData> GetData(DataTableGetDataInput input, CancellationToken cancellationToken) { var mapper = StaticContext.IocManager.Resolve <IObjectMapper>(); var tableConfig = BackupFilesIndex(); var items = (await GetBackupsList()).Select(x => new { FileName = x }).ToList(); var totalRowsBeforeFilter = items.Count(); // Dynamic filter if (!string.IsNullOrEmpty(input.QuickSearch)) { var properties = tableConfig.AuthorizedColumns.Where(x => x.IsVisible).Select(x => x.FilterPropertyName) .ToArray(); if (properties.Length > 0) { items = items.LikeDynamic(properties, input.QuickSearch).ToList(); } } var totalRows = items.Count(); var totalPages = (int)Math.Ceiling((double)items.Count() / input.PageSize); var takeCount = input.PageSize > -1 ? input.PageSize : int.MaxValue; var skipCount = Math.Max(0, (input.CurrentPage - 1) * takeCount); var sort = input.Sorting.FirstOrDefault(); if (sort != null) { items = items.OrderByDynamic(sort.Id, sort.Desc ? "desc" : "asc").ToList(); } items = items.Skip(skipCount).Take(takeCount).ToList(); var dataRows = new List <Dictionary <string, object> >(); foreach (var item in items) { cancellationToken.ThrowIfCancellationRequested(); dataRows.Add(new Dictionary <string, object>() { { "FileName", item.FileName } }); } var result = new DataTableData { TotalRowsBeforeFilter = totalRowsBeforeFilter, TotalRows = totalRows, TotalPages = totalPages, //Echo = dataTableParam.sEcho, Rows = dataRows }; return(result); }
private async Task Fetch_ByTableConfigId() { var controller = LocalIocManager.Resolve <DataTableController>(); var input = new DataTableGetDataInput { Id = PersonsTableId, CurrentPage = 1, PageSize = int.MaxValue, }; DataTableData data = null; await WithUnitOfWorkAsync(async() => { data = await controller.GetTableDataAsync <Person, Guid>(input, CancellationToken.None); }); }
private async Task ScheduledJob_Executions() { var controller = LocalIocManager.Resolve <DataTableController>(); var input = new DataTableGetDataInput { Id = "ScheduledJob_Executions_test", CurrentPage = 1, PageSize = int.MaxValue, }; DataTableData data = null; await WithUnitOfWorkAsync(async() => { data = await controller.GetTableDataAsync <ScheduledJobExecution, Guid>(input, CancellationToken.None); }); }
private async Task TestConvert() { var controller = LocalIocManager.Resolve <DataTableController>(); var input = new DataTableGetDataInput { Id = "Areas_Index", CurrentPage = 1, PageSize = int.MaxValue, }; DataTableData data = null; await WithUnitOfWorkAsync(async() => { data = await controller.GetTableDataAsync <Area, Guid>(input, CancellationToken.None); }); }
public DataTableQueryBuildingContext(Type rootClass, List <DataTableColumn> columns, DataTableGetDataInput dataTableInput) : base(rootClass) { Columns = columns; DataTableInput = dataTableInput; }
public async Task <DataTableData> GetData(DataTableGetDataInput input, CancellationToken cancellationToken) { // disable SoftDeleteFilter to allow get deleted entities CurrentUnitOfWork.DisableFilter(AbpDataFilters.SoftDelete); var tableConfig = IndexTableFull(); var entityId = input.Filter.FirstOrDefault(f => f.RealPropertyName == "EntityId")?.Filter.ToString(); var entityTypeFullName = input.Filter.FirstOrDefault(f => f.RealPropertyName == "EntityTypeFullName")?.Filter.ToString(); var itemType = TypeFinder.Find(t => t.FullName == entityTypeFullName)?.FirstOrDefault(); var history = new List <EntityHistoryItemDto>(); var maxDate = DateTime.MaxValue; // Add entity history history.AddRange(GetEntityAudit(itemType, entityId, out maxDate)); // Add many-to-many related entities history.AddRange(GetManyToManyEntitiesAudit(itemType, entityId)); // Add many-to-one related entities history.AddRange(GetManyToOneEntitiesAudit(itemType, entityId)); // Add child audited properties history.AddRange(GetChildEntitiesAudit(itemType, entityId)); // Add generic child entities history.AddRange(GetGenericEntitiesAudit(itemType, entityId)); if (maxDate != DateTime.MaxValue) { history = history.Where(x => x.CreationTime <= maxDate).ToList(); } var totalRowsBeforeFilter = history.Count(); // Dynamic filter if (!string.IsNullOrEmpty(input.QuickSearch)) { var properties = tableConfig.AuthorizedColumns.Where(x => x.IsVisible).Select(x => x.FilterPropertyName) .ToArray(); if (properties.Length > 0) { history = history.LikeDynamic(properties, input.QuickSearch).ToList(); } } var totalRows = history.Count(); var totalPages = (int)Math.Ceiling((double)history.Count() / input.PageSize); var takeCount = input.PageSize > -1 ? input.PageSize : int.MaxValue; var skipCount = Math.Max(0, (input.CurrentPage - 1) * takeCount); history = history.OrderBy(x => x.CreationTime).ToList(); // Dynamic order by property name var sort = input.Sorting.FirstOrDefault(); if (sort != null) { history = history.OrderByDynamic(sort.Id, sort.Desc ? "desc" : "asc").ToList(); } if (skipCount > history.Count) { skipCount = 0; } history = history.Skip(skipCount).Take(takeCount).ToList(); var dataRows = new List <Dictionary <string, object> >(); var authorizedColumns = tableConfig.Columns //.Where(c => c.AuthorizationRules == null || c.AuthorizationRules.IsAuthorized()) .ToList(); foreach (var item in history) { cancellationToken.ThrowIfCancellationRequested(); var row = new Dictionary <string, object>(); foreach (var col in authorizedColumns) { var value = item.GetType().GetProperty(col.PropertyName)?.GetValue(item); row.Add(col.PropertyName, value); } dataRows.Add(row); } var result = new DataTableData { TotalRowsBeforeFilter = totalRowsBeforeFilter, TotalRows = totalRows, TotalPages = totalPages, Rows = dataRows }; return(result); }