public PagedResponse <UserDTO> GetPage(string userId, PagedQuery pageQuery, FilterAndOrderQuery filterAndOrderQuery)
        {
            var res = new PagedResponse <UserDTO>();

            var size = pageQuery.PageSize == null ? 3 : (int)pageQuery.PageSize;
            var num  = pageQuery.PageNum == null ? 3 : (int)pageQuery.PageNum;

            var usersQuery = _userRepository.GetBasicQuery();


            if (filterAndOrderQuery != null && filterAndOrderQuery.Filters != null)
            {
                if (filterAndOrderQuery.Filters.Count() > 0)
                {
                    usersQuery = usersQuery
                                 .ApplyFilterOptions(filterAndOrderQuery.Filters.First());

                    usersQuery = usersQuery.OrderBy(u => u.UserName);
                }
            }

            var users = usersQuery.Page(num, size).ToList();

            res.Success     = true;
            res.EntitiesDTO = _mapper.Map <ICollection <User>, ICollection <UserDTO> >(users);
            return(res);
        }
        public IActionResult GetPage([FromQuery] PagedQuery pageQuery, [FromQuery] FilterAndOrderQuery filterAndOrderQuery)
        {
            var httpUser = HttpContext.User;

            var claim = httpUser.Claims.Single(x => x.Type == "Id");

            var id = claim.Value;

            var res = _projectService.FindPage(id, pageQuery, filterAndOrderQuery);

            var pageNum  = (int)pageQuery.PageNum;
            var pageSize = (int)pageQuery.PageSize;

            var nextPage = pageNum >= 1 ?
                           _uriService.GetAllUri(new PagedQuery(pageSize, pageNum + 1)).ToString() :
                           null;

            var prevPage = pageQuery.PageNum - 1 >= 1 ?
                           _uriService.GetAllUri(new PagedQuery(pageSize, pageNum - 1)).ToString() :
                           null;

            res.NextPage = nextPage;
            res.PrevPage = prevPage;

            return(Ok(res));
        }
        public IActionResult GetPage([FromQuery] PagedQuery pageQuery, [FromQuery] FilterAndOrderQuery filterAndOrderQuery)
        {
            var userId = HttpContext.User.Claims.Single(x => x.Type == "Id").Value;

            var res = _userService.GetPage(userId, pageQuery, filterAndOrderQuery);


            if (!res.Success)
            {
                return(BadRequest(res));
            }

            return(Ok(res));
        }
        public IActionResult GetPage([FromQuery] PagedQuery pageQuery, [FromQuery] FilterAndOrderQuery filterAndOrderQuery)
        {
            var userId = HttpContext.User.Claims.Single(x => x.Type == "Id").Value;

            return(Ok(_ticketService.FindPage(userId, pageQuery, filterAndOrderQuery)));
        }
        public PagedResponse <ProjectAbbreviatedDTO> FindPage(string id, PagedQuery pagedQuery, FilterAndOrderQuery filterAndOrder)
        {
            var res = new PagedResponse <ProjectAbbreviatedDTO>();

            var size = pagedQuery.PageSize == null ? 3 : (int)pagedQuery.PageSize;
            var num  = pagedQuery.PageNum == null ? 3 : (int)pagedQuery.PageNum;

            var projectsQuery = _projectRepository.GetBasicQuery();

            Console.WriteLine(filterAndOrder.Filters is null);

            projectsQuery = projectsQuery.Where(
                p => p.ProjectUsersReq.Where(pur => (pur.UserAssigned.Id.Equals(Guid.Parse(id)) ||
                                                     pur.Sender.Id.Equals(Guid.Parse(id))) &&
                                             pur.Accepted).ToList().Count > 0);


            if (filterAndOrder != null && filterAndOrder.Filters != null)
            {
                Console.WriteLine("recognised the filters");
                foreach (var filter in filterAndOrder.Filters)
                {
                    projectsQuery = projectsQuery
                                    .ApplyFilterOption(filter.ConvertTStringToProjectFilterOption(), filter.Value);
                }

                projectsQuery = projectsQuery
                                .ApplySortingOptions(filterAndOrder.OrderBy.ConvertTStringToProjectOrderOption());
            }

            var projects = projectsQuery.Page(num, size).ToList();

            res.Success     = true;
            res.EntitiesDTO = _mapper.Map <ICollection <Project>, ICollection <ProjectAbbreviatedDTO> >(projects);
            return(res);
        }
示例#6
0
        public PagedResponse <TicketAbbreviatedDTO> FindPage(string userId, PagedQuery pageQuery, FilterAndOrderQuery filterAndOrderQuery)
        {
            var res = new PagedResponse <TicketAbbreviatedDTO>();

            var size = pageQuery.PageSize == null ? 3 : (int)pageQuery.PageSize;
            var num  = pageQuery.PageNum == null ? 3 : (int)pageQuery.PageNum;

            var ticketQuery = _ticketRepository.GetBasicQuery();

            ticketQuery = ticketQuery.Where(
                t => t.Project.ProjectUsersReq.Where(
                    pur => (pur.UserAssigned.Id.Equals(Guid.Parse(userId)) ||
                            pur.Sender.Id.Equals(Guid.Parse(userId))) && pur.Accepted).ToList().Count > 0
                );

            //p => p.ProjectUsersReq.Where(pur => pur.UserAssigned.Id.Equals(Guid.Parse(id)) || pur.Sender.Id.Equals(Guid.Parse(id))).ToList().Count > 0


            if (filterAndOrderQuery != null && filterAndOrderQuery.Filters != null)
            {
                Console.WriteLine("recognised the filters");
                if (filterAndOrderQuery.Filters.Count() > 0)
                {
                    ticketQuery = ticketQuery.Where(t => t.Title.Contains(filterAndOrderQuery.Filters.First().Value));
                }

                ticketQuery = ticketQuery.OrderBy(t => t.Title);
            }

            var tickets = ticketQuery.Page(num, size).Include(t => t.Status).ToList();


            res.Success     = true;
            res.EntitiesDTO = _mapper.Map <ICollection <Ticket>, ICollection <TicketAbbreviatedDTO> >(tickets);
            return(res);
        }
        public IActionResult GetPageForTicket(Guid id, [FromQuery] PagedQuery pageQuery, [FromQuery] FilterAndOrderQuery filterAndOrderQuery)
        {
            var res = new PagedResponse <CommentDTO>();

            var size = pageQuery.PageSize == null ? 3 : (int)pageQuery.PageSize;
            var num  = pageQuery.PageNum == null ? 3 : (int)pageQuery.PageNum;

            var commentsQuery = _commentRepository.GetBasicQuery();


            if (filterAndOrderQuery != null && filterAndOrderQuery.Filters != null)
            {
                if (filterAndOrderQuery.Filters.Count() > 0)
                {
                    commentsQuery = commentsQuery
                                    .Where(c => c.Commenter.UserAssigned.UserName.Contains(filterAndOrderQuery.Filters.First().Value));

                    commentsQuery = commentsQuery.OrderBy(c => c.Created);
                }
            }

            var comments = commentsQuery
                           .Where(c => c.Ticket.Id.Equals(id))
                           .Include(c => c.Commenter)
                           .ThenInclude(pur => pur.UserAssigned)
                           .Page(num, size)
                           .ToList();

            res.Success     = true;
            res.EntitiesDTO = _mapper.Map <ICollection <Comment>, ICollection <CommentDTO> >(comments);

            return(Ok(res));
        }