public async Task <FindResponse <CaseWorkerTaskAggregate> > Find(FindCaseWorkerTasksParameter parameter, CancellationToken token)
        {
            using (var lck = await _caseManagementDbContext.Lock())
            {
                IQueryable <CaseWorkerTaskModel> result = _caseManagementDbContext.CaseWorkers.Include(_ => _.Roles);
                if (parameter.Claims != null && parameter.Claims.Any())
                {
                    var roles = await GetRoles(parameter.Claims, token);

                    var roleIds = roles.Where(_ => _.RoleId != null).Select(_ => _.RoleId.Value);
                    result = result.Where(_ => _.Roles.Any(r => roleIds.Contains(r.Id)));
                }

                if (MAPPING_ACTIVATIONENAME_TO_PROPERTYNAME.ContainsKey(parameter.OrderBy))
                {
                    result = result.InvokeOrderBy(MAPPING_ACTIVATIONENAME_TO_PROPERTYNAME[parameter.OrderBy], parameter.Order);
                }

                int totalLength = result.Count();
                result = result.Skip(parameter.StartIndex).Take(parameter.Count);
                var content = await result.ToListAsync(token);

                return(new FindResponse <CaseWorkerTaskAggregate>
                {
                    StartIndex = parameter.StartIndex,
                    Count = parameter.Count,
                    TotalLength = totalLength,
                    Content = content.Select(_ => _.ToDomain()).ToList()
                });
            }
        }
        public Task <FindResponse <CaseWorkerTaskAggregate> > Find(FindCaseWorkerTasksParameter parameter, CancellationToken token)
        {
            IEnumerable <CaseWorkerTaskAggregate> result = _caseWorkerTaskLst.ToList();

            if (parameter.Claims != null && parameter.Claims.Any())
            {
                result = result.Where(_ =>
                {
                    return(_.Roles.Any(__ => __.Claims.Any(c => parameter.Claims.Any(pc => pc.Key == c.Key && pc.Value == c.Value))));
                });
            }

            if (MAPPING_ACTIVATIONENAME_TO_PROPERTYNAME.ContainsKey(parameter.OrderBy))
            {
                result = result.AsQueryable().InvokeOrderBy(MAPPING_ACTIVATIONENAME_TO_PROPERTYNAME[parameter.OrderBy], parameter.Order).ToList();
            }

            int totalLength = result.Count();

            result = result.Skip(parameter.StartIndex).Take(parameter.Count);
            return(Task.FromResult(new FindResponse <CaseWorkerTaskAggregate>
            {
                StartIndex = parameter.StartIndex,
                Count = parameter.Count,
                TotalLength = totalLength,
                Content = result.ToList()
            }));
        }
Beispiel #3
0
        public Task <SearchResult <CaseWorkerTaskResult> > Find(FindCaseWorkerTasksParameter parameter, CancellationToken token)
        {
            IEnumerable <CaseWorkerTaskAggregate> result = _caseWorkerTaskLst.ToList();

            if (MAPPING_ACTIVATIONENAME_TO_PROPERTYNAME.ContainsKey(parameter.OrderBy))
            {
                result = result.AsQueryable().InvokeOrderBy(MAPPING_ACTIVATIONENAME_TO_PROPERTYNAME[parameter.OrderBy], parameter.Order).ToList();
            }

            int totalLength = result.Count();

            result = result.Skip(parameter.StartIndex).Take(parameter.Count);
            return(Task.FromResult(new SearchResult <CaseWorkerTaskResult>
            {
                StartIndex = parameter.StartIndex,
                Count = parameter.Count,
                TotalLength = totalLength,
                Content = result.Select(_ => CaseWorkerTaskResult.ToDTO(_)).ToList()
            }));
        }
Beispiel #4
0
        public async Task <SearchResult <CaseWorkerTaskResult> > Find(FindCaseWorkerTasksParameter parameter, CancellationToken token)
        {
            IQueryable <CaseWorkerTaskAggregate> result = _caseManagementDbContext.CaseWorkers;

            if (MAPPING_ACTIVATIONENAME_TO_PROPERTYNAME.ContainsKey(parameter.OrderBy))
            {
                result = result.InvokeOrderBy(MAPPING_ACTIVATIONENAME_TO_PROPERTYNAME[parameter.OrderBy], parameter.Order);
            }

            int totalLength = result.Count();

            result = result.Skip(parameter.StartIndex).Take(parameter.Count);
            var content = await result.ToListAsync(token);

            return(new SearchResult <CaseWorkerTaskResult>
            {
                StartIndex = parameter.StartIndex,
                Count = parameter.Count,
                TotalLength = totalLength,
                Content = content.Select(_ => CaseWorkerTaskResult.ToDTO(_)).ToList()
            });
        }