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()); }
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()); }