Пример #1
0
            public async Task <ICollection <TaskPayload> > Handle(Query request, CancellationToken cancellationToken)
            {
                var tasks = await bpmnService.GetTasksForCandidateGroup("Sales", request.UserLogin);

                var processIds = tasks.Select(t => t.ProcessInstanceId).ToList();

                var projectWfs = await db.ProjectWfs
                                 .Where(p => processIds.Contains(p.ProcessInstanceId))
                                 .ToListAsync(cancellationToken: cancellationToken);

                var processIdToProjectMap = projectWfs.ToDictionary(o => o.ProcessInstanceId, o => o);

                return((from task in tasks
                        let relatedProjectWf = processIdToProjectMap.ContainsKey(task.ProcessInstanceId) ? processIdToProjectMap[task.ProcessInstanceId] : null
                                               select TaskPayload.FromEntity(task, relatedProjectWf))
                       .ToList());
            }
Пример #2
0
            public async Task <ICollection <TaskDto> > Handle(Query request, CancellationToken cancellationToken)
            {
                var tasks = await bpmnService.GetTasksForCandidateGroup("Sales", request.SalesmanLogin);

                var processIds = tasks.Select(t => t.ProcessInstanceId).ToList();

                var orders = await db.Orders
                             .Include(o => o.Customer)
                             .Include(o => o.Superpower)
                             .Where(o => processIds.Contains(o.ProcessInstanceId))
                             .ToListAsync(cancellationToken: cancellationToken);

                var processIdToOrderMap = orders.ToDictionary(o => o.ProcessInstanceId, o => o);

                return((from task in tasks
                        let relatedOrder = processIdToOrderMap.ContainsKey(task.ProcessInstanceId) ? processIdToOrderMap[task.ProcessInstanceId] : null
                                           select TaskDto.FromEntity(task, relatedOrder))
                       .ToList());
            }