public async Task <List <IssueDTO> > Handle(GetAllIssuesQuery request, CancellationToken cancellationToken) { var issues = await _context.Set <Issue>() .ProjectTo <IssueDTO>(_mapper.ConfigurationProvider) .ToListAsync(cancellationToken); var users = await _userService.GetAll(); foreach (var issueDto in issues) { if (!string.IsNullOrEmpty(issueDto.LastModifiedBy)) { issueDto.LastModifiedByName = users.First(x => x.user_id.Equals(issueDto.LastModifiedBy)).name; } issueDto.CreatedByName = users.First(x => x.user_id.Equals(issueDto.CreatedBy)).name; } return(issues); }
// [Cached(600)] public async Task <IActionResult> GetAllIssuesByOrg([FromRoute] string organizationName, [FromRoute] string projectName, [FromQuery] GetAllIssuesQuery query, [FromQuery] PaginationQuery paginationQuery) { var pagination = _mapper.Map <PaginationFilter>(paginationQuery); var filter = _mapper.Map <GetAllIssuesFilter>(query); filter.ProjectName = projectName; filter.OrganizationName = organizationName; var issues = await _issueService.GetIssuesAsync(filter, pagination).ConfigureAwait(false); var issuesResponse = _mapper.Map <List <IssueResponse> >(issues.list); if (pagination == null || pagination.PageNumber < 1 || pagination.PageSize < 1) { return(Ok(new PagedResponse <IssueResponse>(issuesResponse, issues.count))); } var paginationResponse = PaginationHelpers.CreatePaginatedResponse(_uriService, pagination, issuesResponse, issues.count); return(Ok(paginationResponse)); }
// [Cached(600)] public async Task <IActionResult> GetAllProjectIssuesByUser([FromRoute] string username, [FromRoute] string projectName, [FromQuery] GetAllIssuesQuery query, [FromQuery] PaginationQuery paginationQuery) { if (string.IsNullOrEmpty(username)) { return(NotFound(new Response <string>() { Errors = new List <string> { "No username" } })); } var user = await _userService.GetUserByUserNameAsync(username).ConfigureAwait(false); if (user == null) { return(NotFound(new Response <string>() { Errors = new List <string> { "User not found" } })); } var pagination = _mapper.Map <PaginationFilter>(paginationQuery); var filter = _mapper.Map <GetAllIssuesFilter>(query); var project = await _projectService.GetProjectByUserAsync(username, projectName).ConfigureAwait(false); if (project == null) { return(NotFound(new Response <string>() { Errors = new List <string> { "Project not found" } })); } // filter.ProjectName = projectName; // filter.AuthorUsername = username; filter.ProjectId = project.Id; var issues = await _issueService.GetIssuesAsync(filter, pagination).ConfigureAwait(false); var issuesResponse = _mapper.Map <List <IssueResponse> >(issues.list); if (pagination == null || pagination.PageNumber < 1 || pagination.PageSize < 1) { return(Ok(new PagedResponse <IssueResponse>(issuesResponse, issues.count))); } var paginationResponse = PaginationHelpers.CreatePaginatedResponse(_uriService, pagination, issuesResponse, issues.count); return(Ok(paginationResponse)); }
public async Task <ActionResult <List <IssueDTO> > > Get(CancellationToken cancellationToken) { var query = new GetAllIssuesQuery(); return(await _mediator.Send(query, cancellationToken)); }