예제 #1
0
        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);
        }
예제 #2
0
        // [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));
        }
예제 #3
0
        // [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));
        }
예제 #4
0
        public async Task <ActionResult <List <IssueDTO> > > Get(CancellationToken cancellationToken)
        {
            var query = new GetAllIssuesQuery();

            return(await _mediator.Send(query, cancellationToken));
        }