Esempio n. 1
0
        public IEnumerable <ShortCar> SearchUsed(ListingSearchPerameters perameters)
        {
            List <Cars> shortCars = Cars.Where(c => c.CarTypeId == 1).ToList();

            if (perameters.MaxYear != null)
            {
                shortCars = shortCars.Where(c => c.CarYear < perameters.MaxYear).ToList();
            }
            if (perameters.MinYear != null)
            {
                shortCars = shortCars.Where(c => c.CarYear > perameters.MinYear).ToList();
            }
            if (perameters.MinPrice != null)
            {
                shortCars = shortCars.Where(c => c.SalesPrice > perameters.MinPrice).ToList();
            }
            if (perameters.MaxPrice != null)
            {
                shortCars = shortCars.Where(c => c.SalesPrice < perameters.MaxPrice).ToList();
            }
            IMCarModelRepo carModelRepository = new IMCarModelRepo();
            int            modelID            = carModelRepository.GetAll().Where(c => perameters.MakeModel == c.CarModelName).FirstOrDefault().CarModelId;
            IMMakeRepo     carMakeRepo        = new IMMakeRepo();
            int            makeID             = carMakeRepo.GetAll().Where(c => perameters.MakeModel == c.MakeName).FirstOrDefault().MakeId;
            IMMakeRepo     makeRepo           = new IMMakeRepo();

            if (perameters.MakeModel != null)
            {
                shortCars = shortCars.Where(c => c.CarModelId == modelID || makeRepo.GetAll().Where(m => m.MakeId == makeID).FirstOrDefault().MakeName == perameters.MakeModel).ToList();
            }
            List <ShortCar> toReturn = new List <ShortCar>();

            foreach (var car in shortCars)
            {
                toReturn.Add(new ShortCar()
                {
                    CarId    = car.CarId,
                    CarModel = carModelRepository.GetAll().Where(c => c.CarModelId == car.CarModelId).FirstOrDefault().CarModelName,
                    CarMake  = carMakeRepo.Get(carModelRepository.GetAll().Where(c => c.CarModelId == car.CarModelId).FirstOrDefault().MakeId).MakeName,
                    Photo    = Cars.Where(c => c.CarId == car.CarId).FirstOrDefault().Photo,
                    Price    = Cars.Where(c => c.CarId == car.CarId).FirstOrDefault().SalesPrice,
                    Year     = Cars.Where(c => c.CarId == car.CarId).FirstOrDefault().CarYear,
                });
            }
            return(toReturn);
        }
Esempio n. 2
0
        public IHttpActionResult SearchNew(int?minYear, int?maxYear, int?minPrice, int?maxPrice, string make)
        {
            var repo = RepositoryManagerFactory.Create();

            try
            {
                var perameters = new ListingSearchPerameters()
                {
                    MakeModel = make,
                    MaxPrice  = maxPrice,
                    MinPrice  = minPrice,
                    MinYear   = minYear,
                    MaxYear   = maxYear
                };
                var result = repo.SearchNew(perameters);
                return(Ok(result));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
Esempio n. 3
0
        public IEnumerable <ShortCar> SearchUsed(ListingSearchPerameters perameters)
        {
            List <ShortCar> listings = new List <ShortCar>();

            using (var sqlConnection = new System.Data.SqlClient.SqlConnection())
            {
                sqlConnection.ConnectionString = ConfigurationManager
                                                 .ConnectionStrings["DefaultConnection"]
                                                 .ConnectionString;

                SqlCommand command = new SqlCommand();
                command.Connection = sqlConnection;
                string query = "Select CarId, Photo, CarModelName, MakeName, SalesPrice, CarYear from Cars inner join CarModel on Cars.CarModelId = CarModel.CarModelId inner join Make on CarModel.MakeId = Make.MakeId where 1 = 1 ";
                query += "And CarTypeId = 1 ";

                if (!string.IsNullOrEmpty(perameters.MakeModel))
                {
                    query += "And CarModelName like @ModelName ";
                    command.Parameters.AddWithValue("@ModelName", perameters.MakeModel);
                    query += "Or MakeName like @MakeName ";
                    command.Parameters.AddWithValue("@MakeName", perameters.MakeModel);
                }

                if (perameters.MinPrice.HasValue)
                {
                    query += "AND SalesPrice >= @MinPrice ";
                    command.Parameters.AddWithValue("@MinPrice", perameters.MinPrice.Value);
                }

                if (perameters.MinYear.HasValue)
                {
                    query += "AND CarYear >= @MinYear ";
                    command.Parameters.AddWithValue("@MinYear", perameters.MinYear.Value);
                }

                if (perameters.MaxPrice.HasValue)
                {
                    query += "AND SalesPrice <= @MaxPrice ";
                    command.Parameters.AddWithValue("@MaxPrice", perameters.MaxPrice.Value);
                }
                if (perameters.MaxYear.HasValue)
                {
                    query += "AND CarYear <= @MaxYear ";
                    command.Parameters.AddWithValue("@MaxYear", perameters.MaxYear.Value);
                }

                command.CommandText = query;
                sqlConnection.Open();

                using (SqlDataReader dr = command.ExecuteReader())
                {
                    while (dr.Read())
                    {
                        ShortCar row = new ShortCar();
                        row.CarId    = (int)dr["CarId"];
                        row.CarMake  = dr["MakeName"].ToString();
                        row.Year     = (int)dr["CarYear"];
                        row.Price    = (int)dr["SalesPrice"];
                        row.CarModel = dr["CarModelName"].ToString();
                        if (dr["Photo"] != DBNull.Value)
                        {
                            row.Photo = dr["Photo"].ToString();
                        }
                        listings.Add(row);
                    }
                }
                return(listings);
            }
        }
 public IEnumerable <ShortCar> SearchUsed(ListingSearchPerameters perameters)
 {
     return(carsRepository.SearchUsed(perameters));
 }