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()); }
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); }
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)); }
public async Task <IEnumerable <Car> > SearchCarsAsync(CarSearchRequest carSearchRequest) { var result = await _carRepository.SearchCars(carSearchRequest); return(result); }