예제 #1
0
        public IActionResult GetAll([FromQuery] QueryForTopic query)
        {
            int totalPages;

            var entities = repository.GetAll(new DAL.Models.QueryForTopic
            {
                CurrentPage     = query.CurrentPage,
                PageSize        = query.PageSize,
                SearchItemQuery = query.SearchItemQuery
            }, out totalPages);

            var dtos = new PagedTopics();

            dtos.TotalPages = totalPages;

            foreach (var entity in entities)
            {
                var dto = new TopicForRetrieval
                {
                    Id          = entity.Id,
                    Title       = entity.Title,
                    Description = entity.Description,
                    CreatedBy   = entity.CreatedBy.Username,
                    CreatedById = entity.CreatedById
                };

                dtos.TopicsForRetrieval.Add(dto);
            }

            return(Ok(dtos));
        }
예제 #2
0
        public List <Topic> GetAll(QueryForTopic filter, out int totalPages)
        {
            var query = context.Topics
                        .Include(e => e.CreatedBy)
                        .Where(e => e.Title.Contains(filter.SearchItemQuery) || e.Description.Contains(filter.SearchItemQuery));

            totalPages = (int)(Math.Ceiling((double)query.Count() / filter.PageSize));

            var list = query
                       .Skip((filter.CurrentPage - 1) * filter.PageSize)
                       .Take(filter.PageSize)
                       .ToList();

            return(list);
        }