示例#1
0
        /// <inheritdoc />
        public async Task <Page <Script> > ListScripts(ListFilter filter = null)
        {
            filter ??= new ListFilter();
            LoadOperation <Script> operation = database.Load <Script>();

            operation.ApplyFilter(filter);
            return(Page <Script> .Create(
                       (await operation.ExecuteEntitiesAsync()).ToArray(),
                       await database.Load <Script>(s => DBFunction.Count()).ExecuteScalarAsync <long>(),
                       filter.Continue
                       ));
        }
        /// <inheritdoc />
        public async Task <Page <ScheduledTask> > List(ScheduledTaskFilter filter = null)
        {
            filter ??= new ScheduledTaskFilter();
            LoadOperation <ScheduledTask> operation = database.Load <ScheduledTask>();

            operation.ApplyFilter(filter);

            PredicateExpression <ScheduledTask> predicate = null;

            if (filter.DueTime.HasValue)
            {
                predicate &= t => t.Target <= filter.DueTime;
            }

            if (predicate != null)
            {
                operation.Where(predicate.Content);
            }

            return(Page <ScheduledTask> .Create(
                       (await operation.ExecuteEntitiesAsync <ScheduledTask>()).ToArray(),
                       await database.Load <ScheduledTask>(t => DBFunction.Count()).Where(predicate?.Content).ExecuteScalarAsync <long>(),
                       filter.Continue));
        }