Esempio n. 1
0
        static async Task Main(string[] args)
        {
            var services = new ServiceCollection()
                           .AddElsa(configure => configure
                                    .AddConsoleActivities()
                                    .AddFileActivities())
                           .AddAutoMapperProfiles <Program>()
                           .BuildServiceProvider();

            // Run startup actions (not needed when registering Elsa with a Host).
            var startupRunner = services.GetRequiredService <IStartupRunner>();
            await startupRunner.StartupAsync();

            // Get a workflow runner.
            var workflowRunner = services.GetRequiredService <IBuildsAndStartsWorkflow>();

            // Run the workflow.
            await workflowRunner.BuildAndStartWorkflowAsync <ReadLineToFileWorkflow>();

            var store = services.GetRequiredService <IWorkflowInstanceStore>();

            var results = await store.FindManyAsync(
                new WorkflowDefinitionIdSpecification(nameof(ReadLineToFileWorkflow)),
                OrderBySpecification.OrderByDescending <WorkflowInstance>(x => x.CreatedAt),
                Paging.Page(1, 2));

            var count = await store.CountAsync(new WorkflowDefinitionIdSpecification(nameof(ReadLineToFileWorkflow)));

            Console.WriteLine(count);

            foreach (var result in results)
            {
                Console.WriteLine(result.CreatedAt);
            }
        }
Esempio n. 2
0
        public async ValueTask <IActionResult> GetBranches(string code, [FromQuery] string city, [FromQuery] Paging page = null, CancellationToken cancellation = default)
        {
            if (string.IsNullOrEmpty(code))
            {
                return(this.BadRequest());
            }
            if (string.IsNullOrEmpty(city))
            {
                return(this.BadRequest());
            }

            if (page == null)
            {
                page = Paging.Page(1, 50);
            }

            var result = await AuthorityFactory.GetAuthority().GetBranchesAsync(code, city, page, cancellation);

            if (page.TotalCount > 0)
            {
                this.Response.Headers.Add("X-Paging", page.ToString());
                this.Response.Headers.Add("X-Pagination", page.ToString());

                return(this.Ok(result));
            }

            return(this.NotFound());
        }
Esempio n. 3
0
        public async Task ExecuteAsync(CancellationToken cancellationToken = default)
        {
            var threshold     = _clock.GetCurrentInstant().Minus(_options.TimeToLive);
            var specification = new WorkflowCreatedBeforeSpecification(threshold);
            var currentPage   = 0;
            var take          = _options.BatchSize;
            var orderBy       = new OrderBy <WorkflowInstance>(x => x.CreatedAt, SortDirection.Descending);
            var collectedWorkflowInstanceIds = new List <string>();

            // Collect workflow instances to be deleted.
            while (true)
            {
                var paging = Paging.Page(currentPage++, take);

                var workflowInstances = await _workflowInstanceStore
                                        .FindManyAsync(specification, orderBy, paging, cancellationToken)
                                        .ToList();

                var filteredWorkflowInstances = await _retentionFilterPipeline.FilterAsync(workflowInstances, cancellationToken).ToList();

                collectedWorkflowInstanceIds.AddRange(filteredWorkflowInstances.Select(x => x.Id));

                if (workflowInstances.Count < take)
                {
                    break;
                }
            }

            // Delete collected workflow instances.
            await DeleteManyAsync(collectedWorkflowInstanceIds, cancellationToken);
        }
Esempio n. 4
0
        public ViewResult Index(string searchString, int page = 0)
        {
            if (searchString != null)
            {
                page = 1;
            }

            ViewBag.CurrentFilter = searchString;
            var entries = from e in _context.Raffle
                          select e;


            if (!String.IsNullOrEmpty(searchString))
            {
                entries = entries.Where(e => e.Lastname.ToLower().Contains(searchString.ToLower()) ||
                                        e.Firstname.ToLower().Contains(searchString.ToLower()));
                return(View(entries));
            }


            int    NoOfEntries = entries.Count();
            int    pageSize    = 10;
            var    data        = entries.Skip(page * pageSize).Take(pageSize).ToList();
            Paging paging      = new Paging();

            ViewBag.MaxPage = paging.Page(NoOfEntries, pageSize);
            //(NoOfEntries / pageSize) - (NoOfEntries % pageSize == 0 ? 1 : 0);
            ViewBag.Page = page;
            return(View(data));
        }
Esempio n. 5
0
        public async Task <IActionResult> Handle(
            [FromQuery(Name = "workflow")] string?workflowDefinitionId = default,
            [FromQuery(Name = "status")] WorkflowStatus?workflowStatus = default,
            [FromQuery] string?correlationId = default,
            [FromQuery] OrderBy?orderBy      = default,
            [FromQuery] string?searchTerm    = default,
            int page     = 0,
            int pageSize = 25,
            CancellationToken cancellationToken = default)
        {
            _stopwatch.Restart();
            var specification = Specification <WorkflowInstance> .Identity;

            if (!string.IsNullOrWhiteSpace(workflowDefinitionId))
            {
                specification = specification.WithWorkflowDefinition(workflowDefinitionId);
            }

            if (!string.IsNullOrWhiteSpace(correlationId))
            {
                specification = specification.WithCorrelationId(correlationId);
            }

            if (workflowStatus != null)
            {
                specification = specification.WithStatus(workflowStatus.Value);
            }

            if (!string.IsNullOrWhiteSpace(searchTerm))
            {
                specification = specification.WithSearchTerm(searchTerm);
            }

            var orderBySpecification = default(OrderBy <WorkflowInstance>);

            if (orderBy != null)
            {
                orderBySpecification = orderBy switch
                {
                    OrderBy.Started => OrderBySpecification.OrderByDescending <WorkflowInstance>(x => x.CreatedAt),
                    OrderBy.LastExecuted => OrderBySpecification.OrderByDescending <WorkflowInstance>(x => x.LastExecutedAt !),
                    OrderBy.Finished => OrderBySpecification.OrderByDescending <WorkflowInstance>(x => x.FinishedAt !),
                    _ => OrderBySpecification.OrderByDescending <WorkflowInstance>(x => x.FinishedAt !)
                };
            }

            var totalCount = await _workflowInstanceStore.CountAsync(specification, cancellationToken : cancellationToken);

            var paging            = Paging.Page(page, pageSize);
            var workflowInstances = await _workflowInstanceStore.FindManyAsync(specification, orderBySpecification, paging, cancellationToken).ToList();

            var items = _mapper.Map <ICollection <WorkflowInstanceSummaryModel> >(workflowInstances);

            _stopwatch.Stop();
            _logger.LogDebug("Handle took {TimeElapsed}", _stopwatch.Elapsed);
            var model = new PagedList <WorkflowInstanceSummaryModel>(items, page, pageSize, totalCount);

            return(Json(model, _contentSerializer.GetSettings()));
        }
    }
Esempio n. 6
0
        static void Main(string[] args)
        {
            //默认
            var page1 = new Paging();
            //使用
            var page = new Paging(Paging.PagingType.OFFSET, GrammarType.UpperCase)
            {
                Log = (message) =>
                {
                    Trace.WriteLine(message);
                },
            };
            var  orderNumber = string.Empty;
            bool?bl          = null;

            page.Body(@"SELECT * FROM dbo.table1 a
                                  JOIN dbo.table2 b ON a.Id=b.OrderId");
            page.WhereIf(bl != null, "IsLocked", ParameterType.Equal, bl);
            page.OrArea((parameter) =>
            {
                parameter.Whereif(!string.IsNullOrEmpty(orderNumber), "OrderNumber", ParameterType.LeftLike, ParameterLinkType.OR, orderNumber);
            });
            page.OrderByDescending("a.Id");
            page.Page(1, 10);
            var sql        = page.ToString();
            var esql       = page.ExecuteTSql();
            var parameters = page.GetParameters();
            var count      = page.Count();

            Console.WriteLine("分页: " + sql);
            Console.WriteLine("总数: " + count);
            page1.Dispose();
            Console.Read();
        }
        public Thread[] GetTopmosts(ushort forumId, string schema, int count = 10)
        {
            count = Math.Max(5, Math.Min(50, count));

            var globals = this.GetGlobalThreads(0, schema, Paging.Page(1, count));
            var pinneds = this.GetPinnedThreads(forumId, schema, Paging.Page(1, count));

            return(globals.Union(pinneds).OrderByDescending(t => t.ThreadId).Take(count).ToArray());
        }
Esempio n. 8
0
        public object Load(IReport report, IReportDataModel model)
        {
            if (_serviceProvider.Resolve(model.Name) is not IDataService service)
            {
                return(null);
            }

            return(service.Select(null, model.Schema, Paging.Page(1)));
        }
Esempio n. 9
0
        public async Task <ActionResult <PagedList <WorkflowExecutionLogRecord> > > Handle(string id, int?page = default, int?pageSize = default, CancellationToken cancellationToken = default)
        {
            var specification = new WorkflowInstanceIdSpecification(id);
            var totalCount    = await _workflowExecutionLogStore.CountAsync(specification, cancellationToken);

            var paging = page != null?Paging.Page(page.Value, pageSize ?? 100) : default;

            var orderBy = OrderBySpecification.OrderBy <WorkflowExecutionLogRecord>(x => x.Timestamp);
            var records = await _workflowExecutionLogStore.FindManyAsync(specification, orderBy, paging, cancellationToken).ToList();

            return(new PagedList <WorkflowExecutionLogRecord>(records, page, pageSize, totalCount));
        }
Esempio n. 10
0
        public async Task ShouldReturnNothingWhenOffsetGreaterThanDataLength()
        {
            // arrange
            pageNumber = 20;
            pageSize   = 1;
            var paging = new Paging(pageNumber, pageSize);
            // act
            var result = await paging.Page(testData.AsQueryable()).ToList();

            // assert
            result.Should().BeEmpty();
        }
Esempio n. 11
0
        public async Task ShouldReturnWholeDataWhenPageSizeGreaterThanDataLength()
        {
            // arrange
            pageNumber = 1;
            pageSize   = 20;
            var paging = new Paging(pageNumber, pageSize);
            // act
            var result = await paging.Page(testData.AsQueryable()).ToList();

            // assert
            result.Should().HaveSameCount(testData);
        }
Esempio n. 12
0
        public Thread[] GetTopmosts(uint siteId, ushort forumId, int count = 10)
        {
            if (count < 1 || count > 50)
            {
                count = 10;
            }

            var globals = this.GetGlobalThreads(siteId, Paging.Page(1, count));
            var pinneds = this.GetPinnedThreads(siteId, forumId, Paging.Page(1, count));

            return(globals.Union(pinneds).ToArray());
        }
Esempio n. 13
0
        public async Task ShouldReturnDemandedPage()
        {
            // arrange
            pageNumber = 2;
            pageSize   = 5;
            var paging   = new Paging(pageNumber, pageSize);
            var expected = testData.Skip(pageSize);
            // act
            var result = await paging.Page(testData.AsQueryable()).ToList();

            // assert
            result.Should().HaveSameCount(expected);
        }
Esempio n. 14
0
        public async Task <PagedResult <Student> > GetAsync(Paging paging, SortField <Student>[] sortFields, FilterField <Student>[] filterFields)
        {
            IQueryable <Student> query = Context.Students.Include(s => s.Course);

            query = GetStudents(query, sortFields, filterFields);
            var result = new PagedResult <Student>()
            {
                Results              = await paging.Page(query).ToList(),
                PageNumber           = paging.PageNumber,
                PageSize             = paging.PageLimit,
                TotalNumberOfRecords = query.Count(),
                TotalNumberOfPages   = (int)Math.Ceiling(query.Count() / (double)paging.PageLimit)
            };

            return(result);
        }
Esempio n. 15
0
        public async ValueTask <IActionResult> Get(BankUtility.BankKind kind, [FromQuery] Paging page = null, CancellationToken cancellation = default)
        {
            if (page == null)
            {
                page = Paging.Page(1, 50);
            }

            var result = await AuthorityFactory.GetAuthority().GetBanksAsync(kind, page, cancellation);

            if (page.TotalCount > 0)
            {
                this.Response.Headers.Add("X-Paging", page.ToString());
                this.Response.Headers.Add("X-Pagination", page.ToString());

                return(this.Ok(result));
            }

            return(this.NotFound());
        }
Esempio n. 16
0
        public async Task <ActionResult <PagedList <WorkflowDefinitionSummaryModel> > > Handle(
            [FromQuery] string?ids,
            int?page               = default,
            int?pageSize           = default,
            VersionOptions?version = default,
            CancellationToken cancellationToken = default)
        {
            var tenantId = await _tenantAccessor.GetTenantIdAsync(cancellationToken);

            version ??= VersionOptions.Latest;
            var specification = GetSpecification(ids, version.Value).And(new TenantSpecification <WorkflowDefinition>(tenantId));
            var totalCount    = await _workflowDefinitionStore.CountAsync(specification, cancellationToken);

            var paging                         = page == null || pageSize == null ? default : Paging.Page(page.Value, pageSize.Value);
                                     var items = await _workflowDefinitionStore.FindManyAsync(specification, paging: paging, cancellationToken : cancellationToken);

                                     var summaries = _mapper.Map <IList <WorkflowDefinitionSummaryModel> >(items);
                                     var pagedList = new PagedList <WorkflowDefinitionSummaryModel>(summaries, page, pageSize, totalCount);

                                     return(Json(pagedList, SerializationHelper.GetSettingsForWorkflowDefinition()));
        }
Esempio n. 17
0
 public virtual IActionResult Query([FromBody] TConditional conditional, [FromQuery] Paging page = null, [FromQuery(Name = "sorting")][ModelBinder(typeof(SortingBinder))] Sorting[] sortings = null)
 {
     return(this.Paginate(this.DataService.Select(Conditional.ToCondition(conditional), Http.Headers.HeaderDictionaryExtension.GetDataSchema(this.Request.Headers), page ?? Paging.Page(1), sortings)));
 }
Esempio n. 18
0
        public async Task <ActionResult <PagedList <WorkflowDefinitionSummaryModel> > > Handle(int?page = default, int?pageSize = default, VersionOptions?version = default, CancellationToken cancellationToken = default)
        {
            version ??= VersionOptions.Latest;
            var specification = new VersionOptionsSpecification(version.Value);
            var totalCount    = await _workflowDefinitionStore.CountAsync(specification, cancellationToken);

            var paging                         = page == null || pageSize == null ? default : Paging.Page(page.Value, pageSize.Value);
                                     var items = await _workflowDefinitionStore.FindManyAsync(specification, paging: paging, cancellationToken : cancellationToken);

                                     var summaries = _mapper.Map <IList <WorkflowDefinitionSummaryModel> >(items);
                                     var pagedList = new PagedList <WorkflowDefinitionSummaryModel>(summaries, page, pageSize, totalCount);

                                     return(Json(pagedList, _serializer.GetSettings()));
        }
Esempio n. 19
0
 public ActionResult Index2(Paging m)
 {
     using (var s = new MongoSession())
     {
         var q = s.Query<Question>();
         if(m != null)
         {
             q = m.Page(q);
         }
         return View(q);
     }
 }