Пример #1
0
        public async Task <IEnumerable <Posting> > GetAll(PostingsResourceParameters parameters)
        {
            if (parameters == null)
            {
                throw new ArgumentNullException(nameof(parameters));
            }

            var includeProperties = string.Join(",", "Shelter.Location", "Animal");

            if (parameters.ShelterId == null && string.IsNullOrWhiteSpace(parameters.SearchQuery))
            {
                return(await GetPublicPostings(includeProperties));
            }

            var query = _postingsRespository.GetWhere(includeProperties).Where(e => e.IsPublic);

            if (parameters.ShelterId != null)
            {
                query = query.Where(e => e.ShelterId == parameters.ShelterId);
            }

            if (!string.IsNullOrWhiteSpace(parameters.SearchQuery))
            {
                var searchQuery = parameters.SearchQuery.Trim();
                query = query.Where(e => e.Title.Contains(searchQuery));
            }

            return(query.ToList());
        }
Пример #2
0
        public async Task <ActionResult <IEnumerable <PostingDto> > > GetPostings([FromQuery] PostingsResourceParameters parameters)
        {
            var postings = await _postingsService.GetAll(parameters);

            return(Ok(_mapper.Map <IEnumerable <PostingDto> >(postings)));
        }