Пример #1
0
        public async Task GetCanaisAsync_predicate_Is_Null()
        {
            try
            {
                await _service.GetCanaisAsync(null);

                Assert.Fail();
            }
            catch (ArgumentNullException ex)
            {
                Assert.IsTrue(ex.ParamName == _CANAL_PREDICATE_PARAM_NAME);
            }
        }
        public async Task <IActionResult> Get(int?pageSize, int?pageIndex, string queryString)
        {
            if (pageSize == null)
            {
                IList <Canal> list = null;
                if (string.IsNullOrEmpty(queryString))
                {
                    list = await _canalService.GetCanaisAsync();
                }
                else
                {
                    list = await _canalService.GetCanaisAsync(w => w.Title.Contains(queryString));
                }
                var result = new ResponseRoot <IList <Canal> >
                {
                    Data    = list,
                    Success = true
                };
                return(Ok(result));
            }
            else
            {
                if (pageIndex == null)
                {
                    pageIndex = 0;
                }
                IMongoQueryable <Canal>           query  = null;
                ResponseRoot <PagedList <Canal> > result = null;
                if (string.IsNullOrEmpty(queryString))
                {
                    query = _canalService.GetQuery();
                    var pagedList = await PagedList <Canal> .Create(query, pageIndex.Value, pageSize.Value);

                    result = new ResponseRoot <PagedList <Canal> >
                    {
                        Data       = pagedList,
                        PageIndex  = pagedList.PageIndex,
                        PageSize   = pagedList.PageSize,
                        TotalCount = pagedList.TotalCount,
                        TotalPages = pagedList.TotalPages,
                        Success    = true
                    };
                }
                else
                {
                    var builder     = Builders <Canal> .Filter;
                    var builderSort = Builders <Canal> .Sort;
                    var filter      = builder.Where(x => x.Title.Contains(queryString));
                    var sort        = builderSort.Ascending(f => f.Title);
                    var pagedList   = await PagedList <Canal> .Create(_canalService.GetCollection(), filter, sort, pageIndex.Value, pageSize.Value);

                    result = new ResponseRoot <PagedList <Canal> >
                    {
                        Data       = pagedList,
                        PageIndex  = pagedList.PageIndex,
                        PageSize   = pagedList.PageSize,
                        TotalCount = pagedList.TotalCount,
                        TotalPages = pagedList.TotalPages,
                        Success    = true
                    };
                }
                return(Ok(result));
            }
        }