示例#1
0
        public IHttpActionResult Search(int?condition, decimal?minPrice, decimal?maxPrice,
                                        int?minYear, int?maxYear, bool isAspNetUser, string searchTerm)
        {
            var repo = VehicleRepositoryFactory.GetRepository();

            try
            {
                var parameters = new VehicleSearchParameters()
                {
                    Condition    = condition,
                    MinPrice     = minPrice,
                    MaxPrice     = maxPrice,
                    MinYear      = minYear,
                    MaxYear      = maxYear,
                    IsAspNetUser = isAspNetUser,
                    SearchTerm   = searchTerm
                };

                var result = repo.Search(parameters);
                return(Ok(result));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
示例#2
0
        //public List<Vehicle> Search(string type, string SearchKey, int minYear, int maxYear, int minPrice, int maxPrice)
        //{
        //    List<Vehicle> newVehicles = new List<Vehicle>();
        //    List<Vehicle> toReturn = new List<Vehicle>();

        //    if(type == "new")
        //    {
        //        newVehicles = (_vehicle.Where(v => v.IsNew == true)).ToList();
        //        foreach(var car in newVehicles)
        //        {
        //            if(car.Make.MakeName.Contains(SearchKey) || car.Model.ModelName.Contains(SearchKey) || car.Year.ToString() == SearchKey
        //                && car.Year >= minYear && car.Year <= maxYear && car.SalePrice >= minPrice && car.SalePrice <= maxPrice)
        //            {
        //                toReturn.Add(car);
        //            }
        //        }
        //    }

        //    return toReturn;
        //}

        public List <Vehicle> Search(VehicleSearchParameters pram)
        {
            //List<Vehicle> newVehicles = new List<Vehicle>();
            //List<Vehicle> toReturn = new List<Vehicle>();

            //var query = _vehicle.Where(i => i.IsNew == pram.IsNew);

            //if (!String.IsNullOrWhiteSpace(pram.SearchKey))
            //{
            //    query = query.Where(i => i.Make.MakeName.Contains(pram.SearchKey)
            //    || i.Model.ModelName.Contains(pram.SearchKey));
            //}

            //if (pram.MinPrice.HasValue)
            //{
            //    query = query.Where(i => i.SalePrice > pram.MinPrice.Value);
            //}
            //if (pram.MaxPrice.HasValue)
            //{
            //    query = query.Where(i => i.SalePrice < pram.MaxPrice.Value);
            //}
            //if (pram.MinYear.HasValue)
            //{
            //    query = query.Where(i => i.Year > pram.MinYear);
            //}
            //if (pram.MaxYear.HasValue)
            //{
            //    query = query.Where(i => i.Year < pram.MaxYear);
            //}

            //return query.ToList();
            throw new NotImplementedException();
        }
示例#3
0
        public IEnumerable <VehicleDetailsRequest> GetSearchResults(VehicleSearchParameters parameters)
        {
            List <Vehicle> results = _vehicles;

            if (parameters.maxPrice.HasValue)
            {
                results = (from vehicle in results
                           where vehicle.SalesPrice <= parameters.maxPrice
                           select vehicle).ToList();
            }

            if (parameters.minPrice.HasValue)
            {
                results = (from vehicle in results
                           where vehicle.SalesPrice >= parameters.minPrice
                           select vehicle).ToList();
            }

            if (parameters.minYear != null)
            {
                results = (from vehicle in results
                           where vehicle.Year >= parameters.minYear
                           select vehicle).ToList();
            }

            if (parameters.maxYear != null)
            {
                results = (from vehicle in results
                           where vehicle.Year <= parameters.maxYear
                           select vehicle).ToList();
            }

            List <VehicleDetailsRequest> vehicleDetails = GetNamesFromId(results);

            bool successfullyParsed = int.TryParse(parameters.search, out int year);

            if (successfullyParsed == true)
            {
                vehicleDetails = (from vehicle in vehicleDetails
                                  where vehicle.Year == year
                                  select vehicle).ToList();
            }
            else
            {
                if (parameters.search != null)
                {
                    vehicleDetails = (from vehicle in vehicleDetails
                                      where vehicle.MakeName.Contains(parameters.search) || vehicle.ModelName.Contains(parameters.search)
                                      select vehicle).ToList();
                }
            }


            return(vehicleDetails);
        }
示例#4
0
        public IEnumerable <VehicleSearchResult> Search(VehicleSearchParameters parameters)
        {
            using (var cn = new SqlConnection(Settings.GetConnectionString()))
            {
                var par = new DynamicParameters();

                string query = "SELECT TOP 20 VehicleId, VIN, Interior, Transmission, Mileage, MSRP, SalePrice, Color, BodyStyle, mk.MakeName as Make, mo.ModelName as Model, [Year], ImageFileName FROM Vehicle v INNER JOIN Make mk ON v.MakeId = mk.MakeId INNER JOIN Model mo ON v.ModelId = mo.ModelId WHERE Sold = 'false' ";


                if (!string.IsNullOrEmpty(parameters.Type))
                {
                    query += "AND Type=@Type ";
                    par.Add("@Type", parameters.Type);
                }

                if (parameters.MinYear.HasValue)
                {
                    query += "AND v.Year >= @MinYear ";
                    par.Add("@MinYear", parameters.MinYear);
                }

                if (parameters.MaxYear.HasValue)
                {
                    query += "AND v.Year <= @MaxYear ";
                    par.Add("@MaxYear", parameters.MaxYear);
                }

                if (parameters.MinPrice.HasValue)
                {
                    par.Add("@MinPrice", parameters.MinPrice);
                    query += "AND v.SalePrice >= @MinPrice ";
                }

                if (parameters.MaxPrice.HasValue)
                {
                    query += "AND v.SalePrice <= @MaxPrice ";
                    par.Add("@MaxPrice", parameters.MaxPrice);
                }

                if (!string.IsNullOrEmpty(parameters.MakeModelYear))
                {
                    query += "AND (mk.MakeName LIKE @MakeModelYear OR mo.ModelName LIKE @MakeModelYear OR Year LIKE @MakeModelYear) ";
                    par.Add("@MakeModelYear", parameters.MakeModelYear + '%');
                }

                query += "ORDER BY MSRP DESC";

                return(cn.Query <VehicleSearchResult>(query, par, commandType: CommandType.Text).ToList());
            }
        }
示例#5
0
        public ActionResult AddVehicle(VehicleViewModel viewModel)
        {
            var vehicleRepo = VehicleFactory.GetVehicleRepository();

            try
            {
                if (ModelState.IsValid)
                {
                    viewModel.vehicle.UserId = GetUserId();

                    if (viewModel.ImageUpload != null && viewModel.ImageUpload.ContentLength > 0)
                    {
                        var savepath = Server.MapPath("~/Images");


                        string fileName  = Path.GetFileNameWithoutExtension(viewModel.ImageUpload.FileName);
                        string extension = Path.GetExtension(viewModel.ImageUpload.FileName);
                        var    filePath  = Path.Combine(savepath, fileName + extension);

                        filePath = Path.Combine(savepath, "inventory-" + viewModel.vehicle.VehicleId + extension);

                        WebImage img = new WebImage(viewModel.ImageUpload.InputStream);
                        img.Resize(150, 100, preserveAspectRatio: false, preventEnlarge: true).Crop(1, 1);
                        img.Save(filePath);

                        viewModel.vehicle.PictureFileName = Path.GetFileName(filePath);
                    }

                    vehicleRepo.InsertVehicle(viewModel.vehicle);
                    var param = new VehicleSearchParameters();
                    viewModel.vehicle.VehicleId = vehicleRepo.GetSearchResults(param).Count();
                }

                else
                {
                    viewModel         = viewModel.GetLists();
                    viewModel.UserId  = GetUserId();
                    viewModel.vehicle = new Vehicle();

                    return(View(viewModel));
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(RedirectToAction("EditVehicle", new { id = viewModel.vehicle.VehicleId }));
        }
示例#6
0
        public List <Vehicle> QuickSearchUsed(VehicleSearchParameters parameters)
        {
            var result = GetAllUsed();

            if (!String.IsNullOrWhiteSpace(parameters.QuickSearch))
            {
                result = result.Where(s => s.VehicleModel.VehicleMake.Make.Contains(parameters.QuickSearch) || s.VehicleModel.ModelType.Contains(parameters.QuickSearch)).ToList();
            }
            result = result.Where(r => r.SalePrice >= parameters.MinPrice).ToList();
            result = result.Where(r => r.SalePrice <= parameters.MaxPrice).ToList();
            result = result.Where(r => r.Year >= parameters.MinYear).ToList();
            result = result.Where(r => r.Year <= parameters.MaxYear).ToList();

            return(result);
        }
示例#7
0
        public List <Vehicle> Search(VehicleSearchParameters pram)
        {
            var query = context.Vehicle.Where(i => i.IsNew == pram.IsNew && !context.Sales.Any(s => s.VehicleId == i.VehicleId));


            if (!String.IsNullOrWhiteSpace(pram.SearchKey))
            {
                query = query.Where(i => i.MakeId.MakeName.Contains(pram.SearchKey) ||
                                    i.ModelId.ModelName.Contains(pram.SearchKey) ||
                                    i.Year.ToString() == pram.SearchKey);
            }

            if (pram.MinPrice.HasValue && pram.MaxPrice.HasValue)
            {
                query = query.Where(i => i.SalesPrice >= pram.MinPrice.Value && i.SalesPrice <= pram.MaxPrice.Value);
            }
            else
            {
                if (pram.MinPrice.HasValue)
                {
                    query = query.Where(i => i.SalesPrice >= pram.MaxPrice.Value);
                }
                if (pram.MaxPrice.HasValue)
                {
                    query = query.Where(i => i.SalesPrice <= pram.MaxPrice.Value);
                }
            }

            if (pram.MinYear.HasValue && pram.MaxYear.HasValue)
            {
                query = query.Where(i => i.Year >= pram.MinYear.Value && i.Year <= pram.MaxYear.Value);
            }
            else
            {
                if (pram.MinYear.HasValue)
                {
                    query = query.Where(i => i.Year > pram.MinYear);
                }
                if (pram.MaxYear.HasValue)
                {
                    query = query.Where(i => i.Year > pram.MaxYear);
                }
            }



            return(query.ToList());
        }
        public void SearchVehiclesTest()
        {
            var route4Me = new Route4MeManagerV5(c_ApiKey);

            var searchParams = new VehicleSearchParameters()
            {
                VehicleIDs = new string[] { lsVehicles[0].VehicleId },
                Latitude   = 29.748868,
                Longitude  = -95.358473
            };

            var result = route4Me.SearchVehicles(searchParams, out ResultResponse resultResponse);

            Assert.NotNull(result);
            Assert.IsType <Vehicle[]>(result);
        }
示例#9
0
        public IHttpActionResult SearchUsed(string quicksearch, decimal?minprice, decimal?maxprice, int?minyear, int?maxyear)
        {
            try
            {
                var parameters = new VehicleSearchParameters()
                {
                    QuickSearch = quicksearch,
                    MinPrice    = minprice,
                    MaxPrice    = maxprice,
                    MinYear     = minyear,
                    MaxYear     = maxyear
                };

                return(Ok(_repo.QuickSearchUsed(parameters)));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
示例#10
0
        public void CanDeleteVehicle()
        {
            var repoVehicle = VehicleFactory.GetVehicleRepository();

            var param = new VehicleSearchParameters();

            var vehicle = new Vehicle
            {
                MakeId          = 2,
                ModelId         = 3,
                ColorId         = 3,
                TransmitionId   = 2,
                InteriorId      = 2,
                Mileage         = 50000,
                VinNum          = "56789",
                Year            = 2014,
                Descrip         = "One of the best prices on the lot!",
                MSRP            = 15000,
                SalesPrice      = 13000,
                BodyStyleId     = 2,
                PictureFileName = "inventory-4.jpg",
                IsSold          = false,
                IsFeatured      = false,
                IsNew           = false
            };

            repoVehicle.InsertVehicle(vehicle);


            var loadedVehicle = repoVehicle.GetVehicle(4);

            loadedVehicle.IsDeleted = true;
            repoVehicle.UpdateVehicle(loadedVehicle);

            var found = repoVehicle.GetSearchResults(param);

            found = found.Where(x => x.IsDeleted == false);

            Assert.AreEqual(8, found.Count());
        }
示例#11
0
        public IHttpActionResult GetSearch(decimal?minPrice, decimal?maxPrice, int?minYear, int?maxYear, string search)
        {
            var repo       = VehicleFactory.GetVehicleRepository();
            var parameters = new VehicleSearchParameters();

            parameters.maxPrice = maxPrice;
            parameters.minPrice = minPrice;
            parameters.minYear  = minYear;
            parameters.maxYear  = maxYear;
            parameters.search   = search;

            try
            {
                var vehicles = repo.GetSearchResults(parameters);
                vehicles = vehicles.Where(v => v.IsDeleted == false);
                vehicles = vehicles.Where(v => v.IsSold == false);
                return(Ok(vehicles));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
示例#12
0
        public IHttpActionResult SearchForInventory(string newUsed, string makeModelYear, decimal?minPrice, decimal?maxPrice, int?minYear, int?maxYear)
        {
            var repo = InventoryRepositoryFactory.GetRepository();

            try
            {
                var parameters = new VehicleSearchParameters()
                {
                    NewUsed       = newUsed,
                    MakeModelYear = makeModelYear,
                    MinPrice      = minPrice,
                    MaxPrice      = maxPrice,
                    MinYear       = minYear,
                    MaxYear       = maxYear
                };
                var result = repo.SearchInventory(parameters);
                return(Ok(result));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
示例#13
0
        public IHttpActionResult Search(string makeModelYear, int?minYear, int?maxYear, decimal?minPrice, decimal?maxPrice, string type)
        {
            var repo = VehicleRepositoryFactory.GetVehicleRepository();

            try
            {
                var parameters = new VehicleSearchParameters()
                {
                    MakeModelYear = makeModelYear,
                    MinYear       = minYear,
                    MaxYear       = maxYear,
                    MinPrice      = minPrice,
                    MaxPrice      = maxPrice,
                    Type          = type
                };

                var result = repo.Search(parameters);
                return(Ok(result));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
示例#14
0
        public IHttpActionResult Search(decimal?minPrice, decimal?maxPrice, string minYear, string maxYear, string makeName, string modelName, string year)
        {
            var repo = VehicleRepositoryFactory.GetRepository();

            try
            {
                var parameters = new VehicleSearchParameters()
                {
                    MinPrice  = minPrice,
                    MaxPrice  = maxPrice,
                    MinYear   = minYear,
                    MaxYear   = maxYear,
                    MakeName  = makeName,
                    ModelName = modelName,
                    Year      = year
                };
                var result = repo.Search(parameters);
                return(Ok(result));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
示例#15
0
 public IEnumerable <VehicleDetail> Search(VehicleSearchParameters parameters)
 {
     throw new NotImplementedException();
 }
        public IEnumerable <VehicleShortItem> Search(VehicleSearchParameters parameters)
        {
            List <VehicleShortItem> vehicles = new List <VehicleShortItem>();

            using (var cn = new SqlConnection(Settings.GetConnectionString()))
            {
                string query = "SELECT TOP 20 VehicleId, BodyStyle, Year, Transmission, Color, Interior, Miles, Type, Vin, Price, Msrp, " +
                               "ImageFileName, MakeName, ModelName FROM Vehicle INNER JOIN Make ON Vehicle.MakeId = Make.MakeId INNER JOIN Model ON " +
                               "Vehicle.ModelId = Model.ModelId WHERE Type='NEW' AND 1 = 1 ";
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = cn;


                if (parameters.MinPrice.HasValue)
                {
                    query += "AND Price >= @MinPrice ";
                    cmd.Parameters.AddWithValue("@MinPrice", parameters.MinPrice.Value);
                }
                if (parameters.MaxPrice.HasValue)
                {
                    query += "AND Price <= @MaxPrice ";
                    cmd.Parameters.AddWithValue("@MaxPrice", parameters.MaxPrice.Value);
                }
                if (!string.IsNullOrEmpty(parameters.MinYear))
                {
                    query += "AND Year >= @MinYear ";
                    cmd.Parameters.AddWithValue("@MinYear", parameters.MinYear);
                }
                if (!string.IsNullOrEmpty(parameters.MaxYear))
                {
                    query += "AND Year <= @MaxYear ";
                    cmd.Parameters.AddWithValue("@MaxYear", parameters.MaxYear);
                }
                if (!string.IsNullOrEmpty(parameters.MakeName))
                {
                    query += "AND MakeName = @MakeName ";
                    cmd.Parameters.AddWithValue("@MakeName", parameters.MakeName);
                }
                if (!string.IsNullOrEmpty(parameters.ModelName))
                {
                    query += "AND ModelName = @ModelName ";
                    cmd.Parameters.AddWithValue("@ModelName", parameters.ModelName);
                }
                if (!string.IsNullOrEmpty(parameters.Year))
                {
                    query += "AND Year = @Year ";
                    cmd.Parameters.AddWithValue("@Year", parameters.Year);
                }
                cmd.CommandText = query;
                cn.Open();

                using (SqlDataReader dr = cmd.ExecuteReader())
                {
                    while (dr.Read())
                    {
                        VehicleShortItem row = new VehicleShortItem();

                        row.VehicleId    = (int)dr["VehicleId"];
                        row.BodyStyle    = dr["BodyStyle"].ToString();
                        row.Year         = dr["Year"].ToString();
                        row.Transmission = dr["Transmission"].ToString();
                        row.Color        = dr["Color"].ToString();
                        row.Interior     = dr["Interior"].ToString();
                        row.Type         = dr["Type"].ToString();
                        row.Vin          = dr["Vin"].ToString();
                        row.Price        = (decimal)dr["Price"];
                        row.Msrp         = (decimal)dr["Msrp"];
                        row.MakeName     = dr["MakeName"].ToString();
                        row.ModelName    = dr["ModelName"].ToString();
                        if (dr["ImageFileName"] != DBNull.Value)
                        {
                            row.ImageFileName = dr["ImageFileName"].ToString();
                        }
                        vehicles.Add(row);
                    }
                }
            }
            return(vehicles);
        }
示例#17
0
        public IEnumerable <VehicleDetailsRequest> GetSearchResults(VehicleSearchParameters parameters)
        {
            VehicleSearchParameters      parameter   = new VehicleSearchParameters();
            List <VehicleDetailsRequest> resultsList = new List <VehicleDetailsRequest>();

            if (parameters.maxPrice == null)
            {
                parameter.maxPrice = 0;
            }
            else
            {
                parameter.maxPrice = parameters.maxPrice;
            }

            if (parameters.minPrice == null)
            {
                parameter.minPrice = 0;
            }
            else
            {
                parameter.minPrice = parameters.minPrice;
            }

            if (parameters.minYear == null)
            {
                parameter.minYear = 0;
            }
            else
            {
                parameter.minYear = parameters.minYear;
            }

            if (parameters.maxYear == null)
            {
                parameter.maxYear = 0;
            }
            else
            {
                parameter.maxYear = parameters.maxYear;
            }
            parameter.search = parameters.search;

            using (var cn = new SqlConnection(Settings.GetConnectionString()))
            {
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = cn;

                string query = "SELECT TOP 20 BodyStyle, ColorType, InteriorType, MakeName, Mileage, MSRP, SalesPrice, TransmitionType, VehicleId, VinNum, [Year], ModelName, IsNew, IsSold, IsFeatured, PictureFileName, IsDeleted FROM Vehicle v  INNER JOIN BodyStyle b ON v.BodyStyleId = b.BodyStyleId INNER JOIN Color c ON v.ColorId = c.ColorId INNER JOIN Interior i ON v.InteriorId = i.InteriorId INNER JOIN Make ma ON v.MakeId = ma.MakeId INNER JOIN Transmition t ON v.TransmitionId = t.TransmitionId INNER JOIN Model mo ON mo.ModelId = v.ModelId WHERE 1 = 1 ";

                if (parameter.minPrice != 0 && parameter.minPrice != null)
                {
                    query += "AND SalesPrice >= @MinPrice ";
                    cmd.Parameters.AddWithValue("@MinPrice", parameters.minPrice.Value);
                }

                if (parameter.maxPrice != 0 && parameter.maxPrice != null)
                {
                    query += "AND SalesPrice <= @MaxPrice ";
                    cmd.Parameters.AddWithValue("@MaxPrice", parameters.maxPrice.Value);
                }

                if (parameter.minYear != 0 && parameter.minYear != null)
                {
                    query += "AND [Year] >= @MinYear ";
                    cmd.Parameters.AddWithValue("@MinYear", parameters.minYear);
                }

                if (parameter.maxYear != 0 && parameter.maxYear != null)
                {
                    query += "AND [Year] <= @MaxYear ";
                    cmd.Parameters.AddWithValue("@MaxYear", parameters.maxYear);
                }

                if (!string.IsNullOrEmpty(parameter.search))
                {
                    query += "AND MakeName Like @Search OR ModelName LIKE @Search OR [Year] LIKE @Search ";
                    cmd.Parameters.AddWithValue("@Search", parameters.search + '%');
                }

                query += "ORDER BY MSRP DESC";

                cmd.CommandText = query;
                cn.Open();

                using (SqlDataReader dr = cmd.ExecuteReader())
                {
                    while (dr.Read())
                    {
                        VehicleDetailsRequest currentRow = new VehicleDetailsRequest();
                        currentRow.BodyStyle       = dr["BodyStyle"].ToString();
                        currentRow.ColorType       = dr["ColorType"].ToString();
                        currentRow.InteriorType    = dr["InteriorType"].ToString();
                        currentRow.MakeName        = dr["MakeName"].ToString();
                        currentRow.ModelName       = dr["ModelName"].ToString();
                        currentRow.Mileage         = Convert.ToDecimal(dr["Mileage"]);
                        currentRow.MSRP            = Convert.ToDecimal(dr["MSRP"]);
                        currentRow.SalesPrice      = Convert.ToDecimal(dr["SalesPrice"]);
                        currentRow.TransmitionType = dr["TransmitionType"].ToString();
                        currentRow.PictureFileName = dr["PictureFileName"].ToString();
                        currentRow.VehicleId       = (int)dr["VehicleId"];
                        currentRow.VinNum          = dr["VinNum"].ToString();
                        currentRow.Year            = Convert.ToInt32(dr["Year"]);
                        currentRow.IsNew           = Convert.ToBoolean(dr["IsNew"]);
                        currentRow.IsDeleted       = Convert.ToBoolean(dr["IsDeleted"]);
                        currentRow.IsSold          = Convert.ToBoolean(dr["IsSold"]);
                        currentRow.IsFeatured      = Convert.ToBoolean(dr["IsFeatured"]);

                        resultsList.Add(currentRow);
                    }

                    return(resultsList);
                }
            }
        }
 public VehicleSearchViewModel()
 {
     SearchParams  = new VehicleSearchParameters();
     SearchResults = null;
 }
示例#19
0
 public Sales GetSales(VehicleSearchParameters pram)
 {
     throw new NotImplementedException();
 }
        public IEnumerable <VehicleDetail> Search(VehicleSearchParameters parameters)
        {
            var vehicles = new List <VehicleDetail>();

            using (var cn = new SqlConnection(Settings.GetConnectionString()))
            {
                string query = (
                    @"SELECT TOP 20 VehicleId
	                    ,V.UserId
	                    ,[Year]
	                    ,IsUsed
	                    ,IsAutomatic
	                    ,IsFeatured
	                    ,MK.[Name] AS Make
	                    ,MD.[Name] AS Model
	                    ,BS.[Name] AS BodyStyle
	                    ,IC.[Name] AS InteriorColor
	                    ,EC.[Name] AS ExteriorColor
	                    ,VIN
	                    ,V.[Description]
	                    ,[Image]
                        ,SaleId
	                    ,SalePrice
	                    ,MSRP
	                    ,Mileage
                    FROM Vehicles V
                    INNER JOIN BodyStyles BS ON BS.BodyStyleId = V.BodyStyleId
                    INNER JOIN InteriorColors IC ON IC.InteriorColorId = V.InteriorColorId
                    INNER JOIN ExteriorColors EC ON EC.ExteriorColorId = V.ExteriorColorId
                    INNER JOIN Models MD ON MD.ModelId = V.ModelId
                    INNER JOIN Makes MK ON MK.MakeId = MD.MakeId
                    WHERE 1 = 1 
                ");

                SqlCommand cmd = new SqlCommand();
                cmd.Connection = cn;

                if (parameters.IsAspNetUser)
                {
                    query += "AND SaleId IS NULL ";
                    cmd.Parameters.AddWithValue("@IsAspNetUser", parameters.IsAspNetUser);
                }

                if (parameters.Condition == (int)Condition.New ||
                    parameters.Condition == (int)Condition.Used)
                {
                    query += "AND IsUsed = @Condition ";
                    cmd.Parameters.AddWithValue("@Condition", parameters.Condition);
                }

                if (parameters.MinPrice.HasValue)
                {
                    query += "AND SalePrice >= @MinPrice ";
                    cmd.Parameters.AddWithValue("@MinPrice", parameters.MinPrice.Value);
                }

                if (parameters.MaxPrice.HasValue)
                {
                    query += "AND SalePrice <= @MaxPrice ";
                    cmd.Parameters.AddWithValue("@MaxPrice", parameters.MaxPrice.Value);
                }

                if (parameters.MinYear.HasValue)
                {
                    query += "AND [Year] >= @MinYear ";
                    cmd.Parameters.AddWithValue("@MinYear", parameters.MinYear.Value);
                }

                if (parameters.MaxYear.HasValue)
                {
                    query += "AND [Year] <= @MaxYear ";
                    cmd.Parameters.AddWithValue("@MaxYear", parameters.MaxYear.Value);
                }

                if (!string.IsNullOrEmpty(parameters.SearchTerm))
                {
                    query += @"AND MK.[Name] LIKE '%' + @SearchTerm + '%'
                        OR MD.[Name] LIKE '%' + @SearchTerm + '%'
                        OR [Year] LIKE '%' + @SearchTerm + '%'";
                    cmd.Parameters.AddWithValue("@SearchTerm", parameters.SearchTerm);
                }

                query += "ORDER BY MSRP DESC";

                cmd.CommandText = query;

                cn.Open();

                using (SqlDataReader dr = cmd.ExecuteReader())
                {
                    while (dr.Read())
                    {
                        var row = new VehicleDetail();

                        row.VehicleId     = (int)dr["VehicleId"];
                        row.Year          = (int)dr["Year"];
                        row.IsUsed        = (bool)dr["IsUsed"];
                        row.IsAutomatic   = (bool)dr["IsAutomatic"];
                        row.IsFeatured    = (bool)dr["IsFeatured"];
                        row.SalePrice     = (decimal)dr["SalePrice"];
                        row.MSRP          = (decimal)dr["MSRP"];
                        row.Mileage       = (decimal)dr["Mileage"];
                        row.Make          = dr["Make"].ToString();
                        row.Model         = dr["Model"].ToString();
                        row.BodyStyle     = dr["BodyStyle"].ToString();
                        row.InteriorColor = dr["InteriorColor"].ToString();
                        row.ExteriorColor = dr["ExteriorColor"].ToString();
                        row.UserId        = dr["UserId"].ToString();
                        row.VIN           = dr["VIN"].ToString();

                        if (dr["SaleId"] != DBNull.Value)
                        {
                            row.SaleId = (int)dr["SaleId"];
                        }

                        if (dr["Description"] != DBNull.Value)
                        {
                            row.Description = dr["Description"].ToString();
                        }

                        if (dr["Image"] != DBNull.Value)
                        {
                            row.Image = dr["Image"].ToString();
                        }

                        vehicles.Add(row);
                    }
                }
            }
            return(vehicles);
        }
示例#21
0
        public List <Vehicle> QuickSearchUsed(VehicleSearchParameters parameters)
        {
            var result = GetAllUsed();

            #region With Quick Search
            if (!String.IsNullOrWhiteSpace(parameters.QuickSearch) && parameters.MinPrice.HasValue)
            {
                result = result.Where(r => r.SalePrice >= parameters.MinPrice).ToList();
            }
            if (!String.IsNullOrWhiteSpace(parameters.QuickSearch) && parameters.MaxPrice.HasValue)
            {
                result = result.Where(r => r.SalePrice <= parameters.MaxPrice).ToList();
            }
            if (!String.IsNullOrWhiteSpace(parameters.QuickSearch) && parameters.MinYear.HasValue)
            {
                result = result.Where(r => r.Year >= parameters.MinYear).ToList();
            }
            if (!String.IsNullOrWhiteSpace(parameters.QuickSearch) && parameters.MaxYear.HasValue)
            {
                result = result.Where(r => r.Year <= parameters.MaxYear).ToList();
            }
            if (!String.IsNullOrWhiteSpace(parameters.QuickSearch) && parameters.MinPrice.HasValue && parameters.MaxPrice.HasValue &&
                parameters.MinYear.HasValue && parameters.MaxYear.HasValue)
            {
                result = result.Where(r => r.SalePrice > +parameters.MinPrice && r.SalePrice <= parameters.MaxPrice &&
                                      r.Year >= parameters.MinYear && r.Year <= parameters.MaxYear).ToList();
            }
            if (!String.IsNullOrWhiteSpace(parameters.QuickSearch) && parameters.MinYear.HasValue && parameters.MaxYear.HasValue)
            {
                result = result.Where(r => r.Year >= parameters.MinYear && r.Year <= parameters.MaxYear).ToList();
            }
            if (!String.IsNullOrWhiteSpace(parameters.QuickSearch))
            {
                result = result.Where(s => s.VehicleModel.VehicleMake.Make.Contains(parameters.QuickSearch) || s.VehicleModel.ModelType.Contains(parameters.QuickSearch)).ToList();
            }
            #endregion
            #region Without Quick Search
            if (String.IsNullOrWhiteSpace(parameters.QuickSearch) && parameters.MinPrice.HasValue && parameters.MaxPrice.HasValue &&
                parameters.MinYear.HasValue && parameters.MaxYear.HasValue)
            {
                result = result.Where(r => r.SalePrice >= parameters.MinPrice && r.SalePrice <= parameters.MaxPrice && r.Year >= parameters.MinYear && r.Year <= parameters.MaxYear).ToList();
            }
            else if (String.IsNullOrWhiteSpace(parameters.QuickSearch) && parameters.MinPrice.HasValue && parameters.MaxPrice.HasValue)
            {
                result = result.Where(r => r.SalePrice >= parameters.MinPrice && r.SalePrice <= parameters.MaxPrice).ToList();
            }
            else if (String.IsNullOrWhiteSpace(parameters.QuickSearch) && parameters.MinYear.HasValue && parameters.MaxYear.HasValue)
            {
                result = result.Where(r => r.Year >= parameters.MinYear && r.Year <= parameters.MaxYear).ToList();
            }
            else if (String.IsNullOrWhiteSpace(parameters.QuickSearch) && parameters.MinPrice.HasValue && parameters.MaxPrice.HasValue && parameters.MinYear.HasValue)
            {
                result = result.Where(r => r.Year >= parameters.MinYear && r.Year <= parameters.MaxYear && r.SalePrice >= parameters.MinPrice || r.SalePrice <= parameters.MaxPrice).ToList();
            }
            else if (String.IsNullOrWhiteSpace(parameters.QuickSearch) && parameters.MinPrice.HasValue && parameters.MinYear.HasValue && parameters.MaxYear.HasValue)
            {
                result = result.Where(r => r.SalePrice >= parameters.MinPrice && r.SalePrice <= parameters.MaxPrice && r.Year <= parameters.MaxYear).ToList();
            }
            else if (String.IsNullOrWhiteSpace(parameters.QuickSearch) && parameters.MaxPrice.HasValue && parameters.MinYear.HasValue && parameters.MaxYear.HasValue)
            {
                result = result.Where(r => r.SalePrice <= parameters.MaxPrice && r.Year <= parameters.MinYear && r.Year <= parameters.MaxYear).ToList();
            }
            else if (String.IsNullOrWhiteSpace(parameters.QuickSearch) && parameters.MinPrice.HasValue)
            {
                result = result.Where(r => r.SalePrice >= parameters.MinPrice).ToList();
            }
            else if (String.IsNullOrWhiteSpace(parameters.QuickSearch) && parameters.MaxPrice.HasValue)
            {
                result = result.Where(r => r.SalePrice <= parameters.MaxPrice).ToList();
            }
            else if (String.IsNullOrWhiteSpace(parameters.QuickSearch) && parameters.MinYear.HasValue)
            {
                result = result.Where(r => r.Year >= parameters.MinYear).ToList();
            }
            else if (String.IsNullOrWhiteSpace(parameters.QuickSearch) && parameters.MaxYear.HasValue)
            {
                result = result.Where(r => r.Year <= parameters.MaxYear).ToList();
            }

            return(result);
        }
示例#22
0
 public List <Vehicle> SearchSales(VehicleSearchParameters pram)
 {
     throw new NotImplementedException();
 }
示例#23
0
        public IEnumerable <VehicleSearchResult> SearchInventory(VehicleSearchParameters parameters)
        {
            {
                List <VehicleSearchResult> list = new List <VehicleSearchResult>();

                if (string.IsNullOrEmpty(parameters.MinPrice.ToString()))
                {
                    parameters.MinPrice = 1;
                }

                if (string.IsNullOrEmpty(parameters.MaxPrice.ToString()))
                {
                    parameters.MaxPrice = 150000;
                }

                if (string.IsNullOrEmpty(parameters.MinYear.ToString()))
                {
                    parameters.MinYear = 1999;
                }

                if (string.IsNullOrEmpty(parameters.MaxYear.ToString()))
                {
                    parameters.MaxYear = 3000;
                }

                if (!string.IsNullOrEmpty(parameters.MakeModelYear) && int.TryParse(parameters.MakeModelYear, out int year))
                {
                    parameters.MakeModelYear = year.ToString();
                }
                else if (string.IsNullOrEmpty(parameters.MakeModelYear))
                {
                    parameters.MakeModelYear = "";
                }

                if (string.IsNullOrEmpty(parameters.NewUsed))
                {
                    var result = _Vehicles.
                                 Where(v => (v.MakeDescription.StartsWith(parameters.MakeModelYear) || v.VehicleYear.ToString().StartsWith(parameters.MakeModelYear) || v.ModelDescription.StartsWith(parameters.MakeModelYear)) && v.VehicleYear >= parameters.MinYear && v.VehicleYear <= parameters.MaxYear && v.VehicleSalesPrice >= parameters.MinPrice && v.VehicleSalesPrice <= parameters.MaxPrice);

                    var newInventoryQuery = result.OrderByDescending(v => v.VehicleSalesPrice).Take(20);

                    foreach (VehicleSearchResult vehicle in newInventoryQuery)
                    {
                        vehicle.VehicleSalesPriceFormatted = vehicle.VehicleSalesPrice.ToString("c0");
                        vehicle.VehicleMSRPFormatted       = vehicle.VehicleMSRP.ToString("c0");
                        if (vehicle.VehicleMileage < 1000)
                        {
                            vehicle.VehicleMileageFormatted = "New";
                        }
                        else
                        {
                            vehicle.VehicleMileageFormatted = Convert.ToDecimal(vehicle.VehicleMileage).ToString("#,##0");
                        }
                    }

                    return(newInventoryQuery);
                }
                else
                {
                    var result = _Vehicles.
                                 Where(v => v.VehicleTypeDescription == parameters.NewUsed && (v.MakeDescription.StartsWith(parameters.MakeModelYear) || v.VehicleYear.ToString().StartsWith(parameters.MakeModelYear) || v.ModelDescription.StartsWith(parameters.MakeModelYear)) && v.VehicleYear >= parameters.MinYear && v.VehicleYear <= parameters.MaxYear && v.VehicleSalesPrice >= parameters.MinPrice && v.VehicleSalesPrice <= parameters.MaxPrice);

                    var newInventoryQuery = result.OrderByDescending(v => v.VehicleSalesPrice).Take(20);

                    foreach (VehicleSearchResult vehicle in newInventoryQuery)
                    {
                        vehicle.VehicleSalesPriceFormatted = vehicle.VehicleSalesPrice.ToString("c0");
                        vehicle.VehicleMSRPFormatted       = vehicle.VehicleMSRP.ToString("c0");
                        if (vehicle.VehicleMileage < 1000)
                        {
                            vehicle.VehicleMileageFormatted = "New";
                        }
                        else
                        {
                            vehicle.VehicleMileageFormatted = Convert.ToDecimal(vehicle.VehicleMileage).ToString("#,##0");
                        }
                    }

                    return(newInventoryQuery);
                }
            }
        }
示例#24
0
        public IEnumerable <VehicleSearchResult> SearchInventory(VehicleSearchParameters parameters)
        {
            List <VehicleSearchResult> vehicles = new List <VehicleSearchResult>();

            using (var cn = new SqlConnection(Settings.GetConnectionString()))
            {
                string query = "SELECT TOP 20 Vehicles.VehicleId, VehicleYear, MakeDescription, ModelDescription, VehicleTypeDescription, ";
                query += "BodyStyleDescription, InteriorColorDescription, TransmissionDescription, VehicleMileage, BodyColorDescription, VehicleVIN, ";
                query += "VehicleSalesPrice, VehicleMSRP, VehiclePicture, VehicleDescription, VehicleIsFeatured ";
                query += "FROM Vehicles LEFT JOIN Sales ON Vehicles.VehicleId = Sales.VehicleId INNER JOIN BodyStyles ON Vehicles.BodyStyleId = BodyStyles.BodyStyleId ";
                query += "INNER JOIN InteriorColors ON Vehicles.InteriorColorId = InteriorColors.InteriorColorId ";
                query += "INNER JOIN Transmissions ON Vehicles.TransmissionId = Transmissions.TransmissionId ";
                query += "INNER JOIN VehicleTypes ON Vehicles.VehicleTypeId = VehicleTypes.VehicleTypeId ";
                query += "INNER JOIN BodyColors ON Vehicles.BodyColorId = BodyColors.BodyColorId  INNER JOIN Models ON Vehicles.ModelId = Models.ModelId ";
                query += "INNER JOIN Makes ON Makes.MakeId = Models.MakeId WHERE SaleId IS NULL AND 1 = 1 ";

                SqlCommand cmd = new SqlCommand();
                cmd.Connection = cn;

                if (!string.IsNullOrEmpty(parameters.NewUsed))
                {
                    query += $"AND VehicleTypeDescription = @NewUsed ";
                    cmd.Parameters.AddWithValue("@NewUsed", parameters.NewUsed);
                }
                if (parameters.MinPrice.HasValue)
                {
                    query += $"AND VehicleSalesPrice >= @MinPrice ";
                    cmd.Parameters.AddWithValue("@MinPrice", parameters.MinPrice.Value);
                }
                if (parameters.MaxPrice.HasValue)
                {
                    query += $"AND VehicleSalesPrice <= @MaxPrice ";
                    cmd.Parameters.AddWithValue("@MaxPrice", parameters.MaxPrice.Value);
                }
                if (parameters.MinYear.HasValue)
                {
                    query += $"AND VehicleYear >= @MinYear ";
                    cmd.Parameters.AddWithValue("@MinYear", parameters.MinYear.Value);
                }
                if (parameters.MaxYear.HasValue)
                {
                    query += $"AND VehicleYear <= @MaxYear ";
                    cmd.Parameters.AddWithValue("@MaxYear", parameters.MaxYear.Value);
                }


                if (!string.IsNullOrEmpty(parameters.MakeModelYear) && int.TryParse(parameters.MakeModelYear, out int year))
                {
                    query += $"AND VehicleYear = @Year ";
                    cmd.Parameters.AddWithValue("@Year", year);
                }
                else if (!string.IsNullOrEmpty(parameters.MakeModelYear))
                {
                    query += $"AND (MakeDescription LIKE @MakeModelYear OR ModelDescription LIKE @MakeModelYear) ";
                    cmd.Parameters.AddWithValue("@MakeModelYear", parameters.MakeModelYear + '%');
                }
                query += "ORDER BY VehicleMSRP DESC";

                cmd.CommandText = query;
                cn.Open();

                using (SqlDataReader dr = cmd.ExecuteReader())
                {
                    while (dr.Read())
                    {
                        VehicleSearchResult currentRow = new VehicleSearchResult();
                        currentRow.VehicleId                = (int)dr["VehicleId"];
                        currentRow.VehicleYear              = (int)dr["VehicleYear"];
                        currentRow.MakeDescription          = dr["MakeDescription"].ToString();
                        currentRow.ModelDescription         = dr["ModelDescription"].ToString();
                        currentRow.VehicleTypeDescription   = dr["VehicleTypeDescription"].ToString();
                        currentRow.BodyStyleDescription     = dr["BodyStyleDescription"].ToString();
                        currentRow.InteriorColorDescription = dr["InteriorColorDescription"].ToString();
                        currentRow.TransmissionDescription  = dr["TransmissionDescription"].ToString();
                        currentRow.VehicleMileage           = (int)dr["VehicleMileage"];
                        currentRow.BodyColorDescription     = dr["BodyColorDescription"].ToString();
                        currentRow.VehicleVIN               = dr["VehicleVIN"].ToString();
                        currentRow.VehicleSalesPrice        = (decimal)dr["VehicleSalesPrice"];
                        currentRow.VehicleMSRP              = (decimal)dr["VehicleMSRP"];
                        currentRow.VehiclePicture           = dr["VehiclePicture"].ToString();
                        currentRow.VehicleDescription       = dr["VehicleDescription"].ToString();
                        currentRow.VehicleIsFeatured        = (bool)dr["VehicleIsFeatured"];

                        currentRow.VehicleSalesPriceFormatted = currentRow.VehicleSalesPrice.ToString("c0");
                        currentRow.VehicleMSRPFormatted       = currentRow.VehicleMSRP.ToString("c0");
                        if (currentRow.VehicleMileage < 1000)
                        {
                            currentRow.VehicleMileageFormatted = "New";
                        }
                        else
                        {
                            currentRow.VehicleMileageFormatted = Convert.ToDecimal(currentRow.VehicleMileage).ToString("#,##0");
                        }

                        vehicles.Add(currentRow);
                    }
                }
            }
            return(vehicles);
        }