コード例 #1
0
        public async Task <ActionResult> GetLuggagesAsync(Pagination pagination, SearchLuggage search)
        {
            // Mapping: Luggage
            var luggagesSource = await _unitOfWork.Luggages.GetAllAsync();

            var luggages = _mapper.Map <IEnumerable <Luggage>, IEnumerable <LuggageDTO> >(luggagesSource);

            // Search by LuggageWeight:
            if (search.LuggageWeight != null)
            {
                luggages = luggages.Where(l =>
                                          l.LuggageWeight == search.LuggageWeight);
            }

            // Search by Price:
            if (search.PriceFrom != null && search.PriceTo != null)
            {
                luggages = luggages.Where(l =>
                                          l.Price >= search.PriceFrom &&
                                          l.Price <= search.PriceTo);
            }
            else if (search.PriceFrom != null && search.PriceTo == null)
            {
                luggages = luggages.Where(l =>
                                          l.Price >= search.PriceFrom);
            }
            else if (search.PriceFrom == null && search.PriceTo != null)
            {
                luggages = luggages.Where(l =>
                                          l.Price <= search.PriceTo);
            }

            // Sort Asc:
            if (search.sortAsc != "")
            {
                luggages = luggages.OrderBy(l =>
                                            l.GetType().GetProperty(search.sortAsc).GetValue(l));
            }

            // Sort Desc:
            if (search.sortDesc != "")
            {
                luggages = luggages.OrderByDescending(l =>
                                                      l.GetType().GetProperty(search.sortDesc).GetValue(l));
            }

            return(Ok(PaginatedList <LuggageDTO> .Create(luggages, pagination.current, pagination.pageSize)));
        }
コード例 #2
0
        public async Task <ActionResult> GetLuggagesAsync([FromQuery] Pagination pagination, [FromQuery] SearchLuggage search)
        {
            var luggages = await _service.GetLuggagesAsync(pagination, search);

            return(luggages);
        }