コード例 #1
0
ファイル: PlaceService.cs プロジェクト: rosabatista/ISUCorp
        /// <summary>
        /// Gets a paginated list of places.
        /// </summary>
        /// <param name="queryResource">Paginating, sorting and searching query parameters.</param>
        /// <returns>Paginated list of places.</returns>
        public PagedResponse <List <PlaceResource> > ListAsync(QueryResource queryResource)
        {
            try
            {
                if (queryResource == null)
                {
                    throw new ArgumentNullException(nameof(queryResource));
                }

                var places = _placeRepository.DbSet();

                if (!string.IsNullOrWhiteSpace(queryResource.SearchBy))
                {
                    places = places.Where(
                        c => c.Name.ToLower().Contains(queryResource.SearchBy.Trim().ToLower()));
                }

                places = places.ApplyOrder(queryResource.SortOrder);

                var pagedResponse = PagedResponse <Place> .ToPagedResponse(
                    places, queryResource.PageNumber, queryResource.PageSize);

                return(_mapper.Map <PagedResponse <List <PlaceResource> > >(pagedResponse));
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return(new PagedResponse <List <PlaceResource> >(
                           ex.Message, queryResource.PageNumber, queryResource.PageSize));
            }
        }