コード例 #1
0
        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));
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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));
        }