Exemplo n.º 1
0
        public async Task <IActionResult> GetTrips([FromQuery] TripPaginationParams tripPaginationParams)
        {
            var trips = await database.SchoolRepository.GetTrips(tripPaginationParams);

            var tripsToReturn = mapper.Map <ICollection <TripDetailsDto> >(trips);

            return(Ok(tripsToReturn));
        }
Exemplo n.º 2
0
        public async Task <IEnumerable <Trip> > GetTrips(TripPaginationParams tripPaginationParams)
        {
            var trips = await GetWhere <Trip>(t => t.StartDate > tripPaginationParams.StartDate && !t.School.Owner.IsBlocked);

            trips = trips.OrderBy(t => t.StartDate);

            if (tripPaginationParams.FinishDate != null)
            {
                trips = trips.Where(t => (t.FinishDate != null && t.FinishDate >= tripPaginationParams.FinishDate) || (t.FinishDate == null));
            }

            if (!string.IsNullOrEmpty(tripPaginationParams.FromCity))
            {
                trips = trips.Where(t => t.FromCity.ToLower().Contains(tripPaginationParams.FromCity.ToLower()));
            }

            if (!string.IsNullOrEmpty(tripPaginationParams.ToCountry))
            {
                trips = trips.Where(t => t.ToCountry.ToLower().Contains(tripPaginationParams.ToCountry.ToLower()));
            }

            if (!string.IsNullOrEmpty(tripPaginationParams.OrderBy))
            {
                switch (tripPaginationParams.OrderBy)
                {
                case "StartDateAscending": break;

                case "StartDateDescending":
                    trips = trips.OrderByDescending(t => t.StartDate);
                    break;

                case "PriceAscending":
                    trips = trips.OrderBy(t => t.Price);
                    break;

                case "PriceDescending":
                    trips = trips.OrderByDescending(t => t.Price);
                    break;

                default: break;
                }
            }

            return(trips);
        }