コード例 #1
0
        public IActionResult Get([FromQuery] AnimalQueryFilter filter)
        {
            var animals    = _service.GetAnimals(filter);
            var animalsDto = _mapper.Map <IEnumerable <Animal>, IEnumerable <AnimalResponseDto> >(animals);
            var response   = new ApiResponse <IEnumerable <AnimalResponseDto> >(animalsDto);

            return(Ok(response));
        }
コード例 #2
0
        public PagedList <Animal> GetAnimals(AnimalQueryFilter filter)
        {
            var pageNumber = filter.PageNumber == 0 ? _options.DefaultPageNumber : filter.PageNumber;
            var pageSize   = filter.PageSize == 0 ? _options.DefaultPageSize : filter.PageSize;

            var animals = _unitOfWork.AnimalRepository.GetAnimals(filter);

            return(PagedList <Animal> .Create(animals, pageNumber, pageSize));
        }
コード例 #3
0
        public IQueryable <Animal> GetAnimals(AnimalQueryFilter filter)
        {
            Expression <Func <Animal, bool> > expression = animal => animal.Id > 0;

            if (!string.IsNullOrEmpty(filter.Name) && !string.IsNullOrWhiteSpace(filter.Name))
            {
                Expression <Func <Animal, bool> > expr = animal => animal.Name.Contains(filter.Name);
                expression = expression.And(expr);
            }

            if (filter.Family.HasValue)
            {
                Expression <Func <Animal, bool> > expr = animal => animal.FamilyId == filter.Family.Value;
                expression = expression.And(expr);
            }

            if (filter.Genus.HasValue)
            {
                Expression <Func <Animal, bool> > expr = animal => animal.GenusId == filter.Genus.Value;
                expression = expression.And(expr);
            }

            if (filter.Specie.HasValue)
            {
                Expression <Func <Animal, bool> > expr = animal => animal.SpeciesId == filter.Specie.Value;
                expression = expression.And(expr);
            }

            if (filter.Specie.HasValue)
            {
                Expression <Func <Animal, bool> > expr = animal
                                                         => animal.CaptureDate.Value.Date >= filter.CaptureDateMin.Value.Date &&
                                                         animal.CaptureDate.Value.Date <= filter.CaptureDateMax.Value.Date;
                expression = expression.And(expr);
            }

            if (!string.IsNullOrEmpty(filter.RfTag) && !string.IsNullOrWhiteSpace(filter.RfTag))
            {
                //Expression<Func<Animal, bool>> expr = animal => animal.RfidTag.Tag == filter.RfTag;
                Expression <Func <Animal, bool> > expr = animal => animal.RfidTag.Tag == filter.RfTag;
                expression = expression.And(expr);
            }

            return(FindByCondition(expression));
        }
コード例 #4
0
        public IActionResult Get([FromQuery] AnimalQueryFilter filter)
        {
            var animals    = _service.GetAnimals(filter);
            var animalsDto = _mapper.Map <IEnumerable <Animal>, IEnumerable <AnimalResponseDto> >(animals);
            var meta       = new Metadata
            {
                CurrentPage    = animals.CurrentPage,
                HasNextPage    = animals.HasNextPage,
                HasPreviusPage = animals.HasPreviusPage,
                PageSize       = animals.PageSize,
                TotalCount     = animals.TotalCount,
                TotalPage      = animals.TotalPages
            };

            var response = new ApiResponse <IEnumerable <AnimalResponseDto> >(animalsDto, meta);

            return(Ok(response));
        }
コード例 #5
0
        public IEnumerable <Animal> GetAnimals(AnimalQueryFilter filter)
        {
            var animals = _unitOfWork.AnimalRepository.GetAnimals(filter);

            return(animals);
        }