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)); }
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); }