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;
 }
Example #8
0
        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);
        }