Exemple #1
0
        public async Task <TaskTypeGetPagedListResponse> GetPagedListAsync(
            Guid accountId,
            TaskTypeGetPagedListRequest request,
            CancellationToken ct)
        {
            var types = _storage.TaskTypes
                        .AsNoTracking()
                        .Where(x =>
                               x.AccountId == accountId &&
                               (request.Name.IsEmpty() || EF.Functions.ILike(x.Name, $"{request.Name}%")) &&
                               (!request.IsDeleted.HasValue || x.IsDeleted == request.IsDeleted) &&
                               (!request.MinCreateDate.HasValue || x.CreateDateTime >= request.MinCreateDate) &&
                               (!request.MaxCreateDate.HasValue || x.CreateDateTime <= request.MaxCreateDate) &&
                               (!request.MinModifyDate.HasValue || x.ModifyDateTime >= request.MinModifyDate) &&
                               (!request.MaxModifyDate.HasValue || x.ModifyDateTime <= request.MaxModifyDate));

            return(new TaskTypeGetPagedListResponse
            {
                TotalCount = await types
                             .CountAsync(ct),
                LastModifyDateTime = await types
                                     .MaxAsync(x => x != null?x.ModifyDateTime ?? x.CreateDateTime : (DateTime?)null, ct),
                Types = await types
                        .SortBy(request.SortBy, request.OrderBy)
                        .Skip(request.Offset)
                        .Take(request.Limit)
                        .ToListAsync(ct)
            });
        }
Exemple #2
0
        public async Task <ActionResult <TaskTypeGetPagedListResponse> > GetPagedList(
            TaskTypeGetPagedListRequest request,
            CancellationToken ct = default)
        {
            var response = await _taskTypesService.GetPagedListAsync(_userContext.AccountId, request, ct);

            return(ReturnIfAllowed(response, Roles.Tasks, response.Types.Select(x => x.AccountId)));
        }
 public Task <TaskTypeGetPagedListResponse> GetPagedListAsync(
     TaskTypeGetPagedListRequest request,
     Dictionary <string, string> headers = default,
     CancellationToken ct = default)
 {
     return(_factory.PostAsync <TaskTypeGetPagedListResponse>(
                _host + "/Tasks/Types/v1/GetPagedList", null, request, headers, ct));
 }
Exemple #4
0
        public async Task WhenGetPagedList_ThenSuccess()
        {
            var headers = await _defaultRequestHeadersService.GetAsync();

            var name = "Test".WithGuid();
            await Task.WhenAll(_create.TaskType.WithName(name).BuildAsync());

            var request = new TaskTypeGetPagedListRequest
            {
                Name    = name,
                SortBy  = "CreateDateTime",
                OrderBy = "asc"
            };

            var response = await _taskTypesClient.GetPagedListAsync(request, headers);

            var results = response.Types
                          .Skip(1)
                          .Zip(response.Types, (previous, current) => current.CreateDateTime >= previous.CreateDateTime);

            Assert.NotEmpty(response.Types);
            Assert.All(results, Assert.True);
        }