public IActionResult GetChannelsPaged(FilterParams filterParams) { IQueryable <Channel> query = context.Channels; if (!string.IsNullOrEmpty(filterParams.Term)) { query = query.Where(channel => channel.Name.ToLower().Contains(filterParams.Term)); } if (filterParams.Related) { query = query.Include(channel => channel.ChannelCustomers) .ThenInclude(channelCustomers => channelCustomers.Customer) .Select(channel => RemoveChannelCycles(channel)); } var model = new PagedList <Channel>(query, filterParams.PageNumber, filterParams.PageSize, filterParams.Term); Response.Headers.Add("X-Pagination", model.GetHeader().ToJson()); var outputModel = new PagedOutputModel <Channel> { Paging = model.GetHeader(), Links = model.GetLinkInfos <Channel>(urlHelper), Items = model.List }; return(Ok(outputModel)); }
public IActionResult GetChats(FilterParams filterParams) { IQueryable <Chat> query = context.Chats; if (!string.IsNullOrEmpty(filterParams.Term)) { query = query.Where(chat => (chat.Visitor.Name.ToLower().Contains(filterParams.Term)) || (chat.Visitor.Email.ToLower().Contains(filterParams.Term)) || (chat.Visitor.Phone.ToLower().Contains(filterParams.Term)) || (chat.Visitor.Comment.ToLower().Contains(filterParams.Term)) || (chat.Customer.Name.ToLower().Contains(filterParams.Term)) || (chat.Customer.Email.ToLower().Contains(filterParams.Term))); } if (filterParams.Related) { query = query .Include(c => c.Visitor).ThenInclude(v => v.Avatar) .Include(c => c.Customer).ThenInclude(c => c.Avatar) .Include(c => c.Messages) .Select(c => RemoveChatListCycles(c)); } var model = new PagedList <Chat>(query, filterParams.PageNumber, filterParams.PageSize, filterParams.Term); Response.Headers.Add("X-Pagination", model.GetHeader().ToJson()); var outputModel = new PagedOutputModel <Chat> { Paging = model.GetHeader(), Links = model.GetLinkInfos <Chat>(urlHelper), Items = model.List }; return(Ok(outputModel)); }
public IActionResult GetVisitors(FilterParams filterParams) { IQueryable <Visitor> query = context.Visitors; if (!string.IsNullOrEmpty(filterParams.Term)) { query = query.Where(visitor => (visitor.Name.ToLower().Contains(filterParams.Term)) || (visitor.Email.ToLower().Contains(filterParams.Term)) || (visitor.Phone.ToLower().Contains(filterParams.Term)) || (visitor.Comment.ToLower().Contains(filterParams.Term))); } if (filterParams.Related) { query = query .Include(visitor => visitor.Avatar) .Select(visitor => RemoveVisitorCycles(visitor)); } var model = new PagedList <Visitor>(query, filterParams.PageNumber, filterParams.PageSize, filterParams.Term); Response.Headers.Add("X-Pagination", model.GetHeader().ToJson()); var outputModel = new PagedOutputModel <Visitor> { Paging = model.GetHeader(), Links = model.GetLinkInfos <Visitor>(urlHelper), Items = model.List }; return(Ok(outputModel)); }