コード例 #1
0
        public static async Task <List <SupplierCarPrice> > SearchCars(CarSearchRequest searchRequest, int supplierId)
        {
            var cars = _searchResultFromDataFile.PriceResults.Where(c => c.SupplierId == supplierId).Take(50);

            return(cars.Select(c => new SupplierCarPrice {
                Currency = searchRequest.CurrencyCode,
                SupplierBasePrice = c.SupplierPrice,
                SupplierCar = new SupplierCar {
                    Name = c.CarName,
                    Seats = c.Seats,
                    ImageUrl = c.CarImage
                }
            }).ToList());
        }
コード例 #2
0
        private string BuildSearchCar(CarSearchRequest carSearchRequest)
        {
            var builder  = new SqlBuilder();
            var selector = builder.AddTemplate("select * from car /**where**/");

            if (!carSearchRequest.IsEmpty)
            {
                //query += " WHERE ";
            }
            if (carSearchRequest.color != null)
            {
                //query += "color= @color";
                builder.Where("color = @color", new { carSearchRequest.color });
            }
            if (carSearchRequest.hasSunRoof != null)
            {
                //query += " hasSunRoof = @hasSunRoof ";
                builder.Where("hasSunRoof = @hasSunRoof", new { carSearchRequest.hasSunRoof });
            }
            if (carSearchRequest.isFourWheelDrive != null)
            {
                //query += "isFourWheelDrive = @isFourWheelDrive AND ";
                builder.Where("isFourWheelDrive = @isFourWheelDrive", new { carSearchRequest.isFourWheelDrive });
            }
            if (carSearchRequest.hasLowMiles != null)
            {
                //query += "hasLowMiles = @hasLowMiles AND ";
                builder.Where("hasLowMiles = @hasLowMiles", new { carSearchRequest.hasLowMiles });
            }
            if (carSearchRequest.hasPowerWindows != null)
            {
                //query += "hasPowerWindows = @hasPowerWindows AND ";
                builder.Where("hasPowerWindows = @hasPowerWindows", new { carSearchRequest.hasPowerWindows });
            }
            if (carSearchRequest.hasNavigation != null)
            {
                //query += "hasNavigation = @hasNavigation AND ";
                builder.Where("hasNavigation = @hasNavigation", new { carSearchRequest.hasNavigation });
            }
            if (carSearchRequest.hasHeatedSeats != null)
            {
                //query += "hasHeatedSeats = @hasHeatedSeats";
                builder.Where("hasHeatedSeats = @hasHeatedSeats", new { carSearchRequest.hasHeatedSeats });
            }
            return(selector.RawSql);
        }
        public async Task <List <CarPrice> > SearchCars(CarSearchRequest searchRequest, Supplier supplier)
        {
            var factory = new SupplierCarSearchFactory();
            var supplierSearchService = factory.GetSupplierCarSearchService(supplier.Id);
            var supplierCarPrice      = await supplierSearchService.SearchCars(searchRequest);

            var mappedResult = new List <CarPrice>();

            foreach (var sc in supplierCarPrice)
            {
                // do some mapping here to identify the car between supplier car and local car
                // Apply commission policy here, now just multiple 10% as an example
                var carPrice = new CarPrice()
                {
                    Car = new Car
                    {
                        Id       = new Random().Next(1, 100),
                        Name     = sc.SupplierCar.Name,
                        ImageUrl = sc.SupplierCar.ImageUrl
                    },
                    Price       = sc.SupplierBasePrice + (sc.SupplierBasePrice * 0.1M),
                    PriceRateId = Guid.NewGuid()

                                  //Supplier = supplier,
                                  //BookingDetail = new BookingRequestDetail {
                                  //    PickupDate = searchRequest.PickupDate,
                                  //    ReturnDate = searchRequest.ReturnDate,
                                  //    PickupLocation = new Location { Name = searchRequest.PickupLocation },
                                  //    ReturnLocation = new Location { Name = searchRequest.ReturnLocation }
                                  //}
                };

                mappedResult.Add(carPrice);
            }
            return(mappedResult);
        }
コード例 #4
0
        public async Task <IEnumerable <Car> > SearchCars(CarSearchRequest carSearchRequest)
        {
            try
            {
                string query;
                //Build the query you need
                if (carSearchRequest.IsEmpty)
                {
                    query = @"SELECT * FROM Car";
                }
                else
                {
                    query = BuildSearchCar(carSearchRequest);
                }
                //Execute the query
                var result = await QueryAsync <Car>(query, carSearchRequest);

                return(result);
            }
            catch (Exception e)
            {
                return(new List <Car>());
            }
        }
 public async Task <List <SupplierCarPrice> > SearchCars(CarSearchRequest searchRequest)
 {
     return(await MockSearchService.SearchCars(searchRequest, (int)SupplierEnum.Sixt));
 }
コード例 #6
0
        public async Task <IEnumerable <Car> > SearchCarsAsync(CarSearchRequest carSearchRequest)
        {
            var result = await _carRepository.SearchCars(carSearchRequest);

            return(result);
        }