public async Task <IActionResult> Search([FromBody] SearchHumanTaskInstanceDetailsQuery query) { query.Claims = User.GetClaims(); var result = await _mediator.Send(query); return(new OkObjectResult(result)); }
public async Task <SearchResult <TaskInstanceDetailsResult> > Handle(SearchHumanTaskInstanceDetailsQuery request, CancellationToken cancellationToken) { _logger.LogInformation("Search human task instance"); var nameIdentifier = _authorizationHelper.GetNameIdentifier(request.Claims); var roles = _authorizationHelper.GetRoles(request.Claims); var result = await _humanTaskInstanceQueryRepository.Search(new SearchHumanTaskInstanceParameter { UserIdentifier = nameIdentifier, GroupNames = roles, Count = request.Count, Order = request.Order, OrderBy = request.OrderBy, StartIndex = request.StartIndex, StatusLst = request.StatusLst, ActualOwner = request.ActualOwner }, cancellationToken); var content = new List <TaskInstanceDetailsResult>(); foreach (var record in result.Content) { var callbackTxt = new Func <ICollection <PresentationElementInstance>, Localization.Translation>((t) => { if (t == null || !t.Any()) { return(null); } try { return(_translationHelper.Translate(t)); } catch (BadOperationExceptions) { return(null); } }); var appRoles = await _authorizationHelper.GetRoles(record, request.Claims, cancellationToken); var name = callbackTxt(record.Names); var subject = callbackTxt(record.Subjects); content.Add(TaskInstanceDetailsResult.ToDto(record, name, subject, appRoles, _authorizationHelper.GetNameIdentifier(request.Claims))); } return(new SearchResult <TaskInstanceDetailsResult> { Count = result.Count, TotalLength = result.TotalLength, StartIndex = result.StartIndex, Content = content }); }