Ejemplo n.º 1
0
        public override IList <Trip> Search(TripCriteria criteria)
        {
            if (_mockData == null)
            {
                LoadSampleData();
            }

            if (criteria == null)
            {
                return(_mockData ?? new List <Trip>());
            }

            return((_mockData ?? new List <Trip>())
                   .Where(x => (string.IsNullOrWhiteSpace(criteria.NearDepartureLocationId) || x.DepartureLocationId.IndexOf(criteria.NearDepartureLocationId, StringComparison.InvariantCultureIgnoreCase) >= 0) &&
                          (string.IsNullOrWhiteSpace(criteria.NearArrivalLocationId) || x.ArrivalLocationId.IndexOf(criteria.NearArrivalLocationId, StringComparison.InvariantCultureIgnoreCase) >= 0) &&
                          (string.IsNullOrWhiteSpace(criteria.DriverId) || x.DriverId == criteria.DriverId) &&
                          (criteria.DepartureDate < DateTime.Now || criteria.DepartureDate.Date == x.DepartDate.Date) &&
                          (criteria.ReturnDate < DateTime.Now || criteria.ReturnDate.Date == x.ReturnDate.Date)
                          )
                   .OrderBy(x => x.DepartDate) //earliest first
                   .ToList());
            //TODO: later fuzzy date matches to end of search results (ie. off by day), plus the "near" location criteria
        }
Ejemplo n.º 2
0
        public HttpResponseMessage GetSearch(TripCriteria model)
        {
            var items = ProviderResolver <TripProvider> .Get.Provider.Search(model);

            return(Request.CreateResponse(HttpStatusCode.OK, items));
        }