Beispiel #1
0
        public ActionResult Index()
        {
            if (Settings.GetRepositoryType() == "QA")
            {
                var context = new ApplicationDbContext();

                var allUsers = context.Users.ToList();

                SignInManager.SignIn(allUsers.Find(u => u.FirstName == "Admin"), true, false);
            }


            var vehicleRepo = VehicleRepositoryFactory.GetVehicleRepository();

            var specailRepo = SpecialRepositoryFactory.GetSpecialRepository();

            HomeViewModel model = new HomeViewModel()
            {
                vehicleList = vehicleRepo.GetFeaturedVehicleList(),
                specialList = specailRepo.GetSpecials()
            };


            return(View(model));
        }
Beispiel #2
0
        public ActionResult EditVehicle(int?id)
        {
            var repo = VehicleRepositoryFactory.GetVehicleRepository();

            var vehicle = repo.GetVehicleById(id);

            var model = new EditVehicleViewModel()
            {
                VehicleId       = vehicle.VehicleId,
                VIN             = vehicle.VIN,
                Interior        = vehicle.Interior,
                Transmission    = vehicle.Transmission,
                Type            = vehicle.Type,
                Mileage         = vehicle.Mileage,
                MSRP            = vehicle.MSRP,
                SalePrice       = vehicle.SalePrice,
                Color           = vehicle.Color,
                BodyStyle       = vehicle.BodyStyle,
                Description     = vehicle.Description,
                Make            = vehicle.Make,
                Model           = vehicle.Model,
                Year            = vehicle.Year,
                FeaturedVehicle = vehicle.FeaturedVehicle,
                ImageFileName   = vehicle.ImageFileName
            };


            return(View(model));
        }
 public ActionResult AddVehicle(DetailsVM addVehicle)
 {
     if (addVehicle.Vehicle.Year < 2000 || addVehicle.Vehicle.Year > 2021)
     {
         ModelState.AddModelError("Vehicle.Year", "Please enter a year between 2000 and 2021.");
     }
     if (addVehicle.Vehicle.MSRP < 0)
     {
         ModelState.AddModelError("Vehicle.MSRP", "MSRP must be a positive number.");
     }
     if (addVehicle.Vehicle.SalePrice < 0)
     {
         ModelState.AddModelError("Vehicle.SalePrice", "SalePrice must be a positive number.");
     }
     if (addVehicle.Vehicle.MSRP < addVehicle.Vehicle.SalePrice)
     {
         ModelState.AddModelError("Vehicle.MSRP", "SalePrice must be lower than MSRP.");
     }
     if (ModelState.IsValid)
     {
         addVehicle.Vehicle.Picture = "placeholder.png";
         VehicleRepositoryFactory.GetVehicleRepository().Add(addVehicle.Vehicle);
         return(RedirectToAction("EditVehicle", new { vinNumber = addVehicle.Vehicle.VinNumber }));
     }
     else
     {
         var viewModel = addVehicle;
         viewModel.BodyStyles   = BodyStyleRepositoryFactory.GetBodyStyleRepository().GetBodyStyles();
         viewModel.Colors       = ColorRepositoryFactory.GetColorRepository().GetColors();
         viewModel.Makes        = MakeRepositoryFactory.GetMakeRepository().GetMakes();
         viewModel.Models       = ModelRepositoryFactory.GetModelRepository().GetModels();
         viewModel.Transmission = TransmissionTypeRepositoryFactory.GetTransmissionTypeRepository().GetTransmissions();
         return(View(viewModel));
     }
 }
        public ActionResult Purchase(SaleVM sold)
        {
            var details = new DetailsVM();

            details.Vehicle      = VehicleRepositoryFactory.GetVehicleRepository().GetVehicleByVIN(sold.Sale.VinNumber);
            details.BodyStyles   = BodyStyleRepositoryFactory.GetBodyStyleRepository().GetBodyStyles();
            details.Colors       = ColorRepositoryFactory.GetColorRepository().GetColors();
            details.Makes        = MakeRepositoryFactory.GetMakeRepository().GetMakes();
            details.Models       = ModelRepositoryFactory.GetModelRepository().GetModels();
            details.Transmission = TransmissionTypeRepositoryFactory.GetTransmissionTypeRepository().GetTransmissions();

            sold.Details = details;

            if (sold.Sale.Phone == null && sold.Sale.Email == null)
            {
                ModelState.AddModelError("", "You must enter a phone number or an email address.");
            }
            if (sold.Sale.Zipcode.Length > 5)
            {
                ModelState.AddModelError("", "Zipcode should only be 5 digits long, please.");
            }
            if (sold.Sale.PurchasePrice < ((sold.Details.Vehicle.MSRP * 95) * .01m))
            {
                ModelState.AddModelError("", "Purchase price should not be lower than 95% vehicle MSRP, please recalculate.");
            }
            if (sold.Sale.PurchasePrice > sold.Details.Vehicle.MSRP)
            {
                ModelState.AddModelError("", "Purchase price should not be greater than MSRP, please recalculate.");
            }


            var repo = SaleRepositoryFactory.GetSaleRepository();

            if (ModelState.IsValid)
            {
                sold.Sale.UserID       = User.Identity.GetUserId();
                sold.Sale.PurchaseDate = DateTime.Now;
            }

            var result = repo.Add(sold.Sale);

            if (result != null)
            {
                var vehicleToUpdate = VehicleRepositoryFactory.GetVehicleRepository().GetVehicleByVIN(sold.Sale.VinNumber);
                vehicleToUpdate.IsPurchased = true;
                vehicleToUpdate.IsFeatured  = false;
                VehicleRepositoryFactory.GetVehicleRepository().Edit(vehicleToUpdate);

                return(View("Index"));
            }


            // assign sold.UserID to currently logged in user
            // assign sold.PurchaseDate to DateTime.Now
            // if saving the purchase is a success, update vehicle.IsPurchased to true and vehicle.IsFeatured to false;
            return(View());
        }
Beispiel #5
0
        public void CanDeleteVehicle()
        {
            var vehicles = VehicleRepositoryFactory.GetVehicleRepository().GetVehicles();

            var vehicleToDelete = vehicles[3];

            VehicleRepositoryFactory.GetVehicleRepository().Delete(vehicleToDelete.VinNumber);

            Assert.AreEqual(5, vehicles.Count());
        }
        public ActionResult Index()
        {
            var viewModel = new FeaturedVM();

            viewModel.FeaturedVehicles = VehicleRepositoryFactory.GetVehicleRepository().GetFeaturedVehicles();
            viewModel.Specials         = SpecialRepositoryFactory.GetSpecialRepository().GetSpecials();
            viewModel.FeaturedMakes    = MakeRepositoryFactory.GetMakeRepository().GetMakes();
            viewModel.FeaturedModels   = ModelRepositoryFactory.GetModelRepository().GetModels();

            return(View(viewModel));
        }
Beispiel #7
0
        public ActionResult AddVehicle(AddVehicleViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var newVehicle = new AddVehicleObject()
                    {
                        Make         = viewModel.Make,
                        Model        = viewModel.Model,
                        Type         = viewModel.Type,
                        BodyStyle    = viewModel.BodyStyle,
                        Year         = viewModel.Year,
                        Transmission = viewModel.Transmission,
                        Color        = viewModel.Color,
                        Interior     = viewModel.Interior,
                        Mileage      = viewModel.Mileage,
                        VIN          = viewModel.VIN,
                        MSRP         = viewModel.MSRP,
                        SalePrice    = viewModel.SalePrice,
                        Description  = viewModel.Description
                    };

                    var repo = VehicleRepositoryFactory.GetVehicleRepository();

                    repo.AddVehicle(newVehicle);


                    var savepath = Server.MapPath("~/Images/Vehicles");

                    string extension = Path.GetExtension(viewModel.ImageUpload.FileName);

                    var filePath = Path.Combine(savepath, "inventory-" + newVehicle.VehicleId.ToString() + extension);

                    viewModel.ImageUpload.SaveAs(filePath);

                    var fileName = Path.GetFileName(filePath);

                    repo.AddVehicleFileName(fileName, newVehicle.VehicleId);

                    return(RedirectToAction("EditVehicle", new { id = newVehicle.VehicleId }));
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
            else
            {
                var vehicleViewObject = new AddVehicleViewModel();

                return(View(vehicleViewObject));
            }
        }
        public IHttpActionResult Delete(string vinNumber)
        {
            Vehicle vehicle = VehicleRepositoryFactory.GetVehicleRepository().GetVehicleByVIN(vinNumber);

            if (vehicle == null)
            {
                return(NotFound());
            }

            VehicleRepositoryFactory.GetVehicleRepository().Delete(vinNumber);
            return(Ok());
        }
        public ActionResult EditVehicle(string vinNumber)
        {
            var viewModel = new DetailsVM();

            viewModel.Vehicle      = VehicleRepositoryFactory.GetVehicleRepository().GetVehicleByVIN(vinNumber);
            viewModel.BodyStyles   = BodyStyleRepositoryFactory.GetBodyStyleRepository().GetBodyStyles();
            viewModel.Colors       = ColorRepositoryFactory.GetColorRepository().GetColors();
            viewModel.Makes        = MakeRepositoryFactory.GetMakeRepository().GetMakes();
            viewModel.Models       = ModelRepositoryFactory.GetModelRepository().GetModels();
            viewModel.Transmission = TransmissionTypeRepositoryFactory.GetTransmissionTypeRepository().GetTransmissions();
            return(View(viewModel));
        }
Beispiel #10
0
        public Sale Add(Sale sale)
        {
            var vehicle = VehicleRepositoryFactory.GetVehicleRepository().GetVehicleByVIN(sale.VinNumber);

            if ((sale.Phone == null && sale.Email == null) || sale.Zipcode.Length != 5 || sale.PurchasePrice > vehicle.MSRP || sale.PurchasePrice < ((vehicle.MSRP * 95) * .01m))
            {
                return(null);
            }

            _sales.Add(sale);
            return(sale);
        }
        public ActionResult Inventory()
        {
            var repo = VehicleRepositoryFactory.GetVehicleRepository();

            var model = new InventoryReport()
            {
                NewVehicles  = repo.GetVehicleInventoryList("New"),
                UsedVehicles = repo.GetVehicleInventoryList("Used")
            };

            return(View(model));
        }
Beispiel #12
0
        public IHttpActionResult GetVehicleDetailsById(int id)
        {
            var repo = VehicleRepositoryFactory.GetVehicleRepository();

            try
            {
                var vehicle = repo.GetVehicleById(id);

                return(Ok(vehicle));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
        // GET: Inventory/Details/{id}
        public ActionResult Details(int?id)  // This will be called from Javascript code in New Vehicle View
        {
            var repo = VehicleRepositoryFactory.GetVehicleRepository();

            try
            {
                var vehicle = repo.GetVehicleById(id);

                return(View(vehicle));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Beispiel #14
0
        public ActionResult Index()
        {
            var repo = VehicleRepositoryFactory.GetVehicleRepository();

            var yearList = repo.GetYearList("");           // Empty argument will get list of both New and Used Type

            var salePriceList = repo.GetSalePriceList(""); // Empty argument will get list of both New and Used Type

            var model = new InventoryViewModel()
            {
                YearList      = yearList,
                SalePriceList = salePriceList
            };

            return(View(model));
        }
Beispiel #15
0
        public ActionResult Vehicles()
        {
            var repo = VehicleRepositoryFactory.GetVehicleRepository();

            var yearList = repo.GetYearList("");

            var salePriceList = repo.GetSalePriceList("");

            var model = new InventoryViewModel()
            {
                YearList      = yearList,
                SalePriceList = salePriceList
            };

            return(View(model));
        }
Beispiel #16
0
        public ActionResult Purchase(SaleLogViewModel saleLogViewModel)
        {
            if (ModelState.IsValid)
            {
                var saleLogRepo = SaleLogRepositoryFactory.GetSaleLogRepository();

                var vehicleRepo = VehicleRepositoryFactory.GetVehicleRepository();


                var saleLog = new SaleLog()
                {
                    BuyerName     = saleLogViewModel.BuyerName,
                    Email         = saleLogViewModel.Email,
                    Street1       = saleLogViewModel.Street1,
                    Street2       = saleLogViewModel.Street2,
                    City          = saleLogViewModel.City,
                    State         = saleLogViewModel.State,
                    ZipCode       = saleLogViewModel.ZipCode,
                    PurchasePrice = saleLogViewModel.PurchasePrice,
                    PurchaseType  = saleLogViewModel.PurchaseType,
                    VehicleId     = saleLogViewModel.VehicleId,
                    Phone         = saleLogViewModel.Phone,
                    SalesUserId   = User.Identity.GetUserId(),
                    PurchaseDate  = DateTime.Today
                };
                // Add Sale Log Record
                saleLogRepo.AddSaleLog(saleLog);

                // Mark Vehicle as Purchased
                vehicleRepo.VehicleMarkPurchased(saleLogViewModel.VehicleId);

                return(RedirectToAction("Index", "Home"));
            }
            else // send back the View with error list
            {
                var repo = VehicleRepositoryFactory.GetVehicleRepository();

                var model = new PurchaseViewModel()
                {
                    vehicle          = repo.GetVehicleById(saleLogViewModel.VehicleId),
                    saleLogViewModel = saleLogViewModel
                };

                return(View(model));
            }
        }
Beispiel #17
0
        public ActionResult EditVehicle(EditVehicleViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var repo = VehicleRepositoryFactory.GetVehicleRepository();

                    if (viewModel.ImageUpload != null)
                    {
                        var savepath = Server.MapPath("~/Images/Vehicles");

                        var existingFilePath = Path.Combine(savepath, viewModel.ImageFileName);

                        var newFilepath = existingFilePath; // Copy the existing file path details before deleting it

                        // Delete the existing file first
                        if (System.IO.File.Exists(existingFilePath))
                        {
                            System.IO.File.Delete(existingFilePath);
                        }

                        string extension = Path.GetExtension(viewModel.ImageUpload.FileName);

                        viewModel.ImageUpload.SaveAs(newFilepath);
                    }

                    repo.UpdateVehicle(viewModel);

                    return(RedirectToAction("Index", "Home"));
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
            else
            {
                var vehicleViewObject = new AddVehicleViewModel();

                return(View(vehicleViewObject));
            }
        }
        public ActionResult Purchase(string vinNumber)
        {
            var details = new DetailsVM();

            details.Vehicle      = VehicleRepositoryFactory.GetVehicleRepository().GetVehicleByVIN(vinNumber);
            details.BodyStyles   = BodyStyleRepositoryFactory.GetBodyStyleRepository().GetBodyStyles();
            details.Colors       = ColorRepositoryFactory.GetColorRepository().GetColors();
            details.Makes        = MakeRepositoryFactory.GetMakeRepository().GetMakes();
            details.Models       = ModelRepositoryFactory.GetModelRepository().GetModels();
            details.Transmission = TransmissionTypeRepositoryFactory.GetTransmissionTypeRepository().GetTransmissions();

            var viewModel = new SaleVM();

            viewModel.Sale           = new GuildCars.Models.Tables.Sale();
            viewModel.Sale.VinNumber = vinNumber;
            viewModel.Details        = details;

            return(View(viewModel));
        }
        public ActionResult Inventory()
        {
            var bodystyles   = BodyStyleRepositoryFactory.GetBodyStyleRepository().GetBodyStyles();
            var colors       = ColorRepositoryFactory.GetColorRepository().GetColors();
            var makes        = MakeRepositoryFactory.GetMakeRepository().GetMakes();
            var models       = ModelRepositoryFactory.GetModelRepository().GetModels();
            var transmission = TransmissionTypeRepositoryFactory.GetTransmissionTypeRepository().GetTransmissions();
            var vehicles     = VehicleRepositoryFactory.GetVehicleRepository().GetVehicles();

            var vehiclesToReturn = new List <VehicleDisplayVM>();

            foreach (var vehicle in vehicles)
            {
                var model = new VehicleDisplayVM();

                model.Vehicle       = vehicle;
                model.Model         = models.FirstOrDefault(m => m.ModelID == vehicle.ModelID);
                model.Make          = makes.FirstOrDefault(m => m.MakeID == vehicle.MakeID);
                model.BodyStyle     = bodystyles.FirstOrDefault(b => b.BodyStyleID == vehicle.BodyStyleID);
                model.ExteriorColor = colors.FirstOrDefault(c => c.ColorID == vehicle.ExteriorColor);
                model.InteriorColor = colors.FirstOrDefault(c => c.ColorID == vehicle.InteriorColor);
                model.Transmission  = transmission.FirstOrDefault(t => t.TransmissionID == vehicle.TransmissionID);

                vehiclesToReturn.Add(model);
            }

            //vehiclesToReturn = vehiclesToReturn.OrderBy(vehicle => vehicle.Vehicle.Year).ThenBy(vehicle => vehicle.Make.MakeName).ThenBy(vehicle => vehicle.Model.ModelName).ToList();

            var usedVehicles = vehiclesToReturn.Where(v => v.Vehicle.Mileage > 1000).ToList();
            var newVehicles  = vehiclesToReturn.Where(v => v.Vehicle.Mileage <= 1000).ToList();


            List <InventoryReportVehicleGroup> usedVehicleGroupList = VehicleList(usedVehicles);
            List <InventoryReportVehicleGroup> newVehicleGroupList  = VehicleList(newVehicles);

            InventoryReportViewModel viewModel = new InventoryReportViewModel()
            {
                NewVehicles  = newVehicleGroupList,
                UsedVehicles = usedVehicleGroupList
            };

            return(View(viewModel));
        }
Beispiel #20
0
        public ActionResult Purchase(int?id)  // This will be called from Javascript code in Index View
        {
            var repo = VehicleRepositoryFactory.GetVehicleRepository();

            try
            {
                var model = new PurchaseViewModel()
                {
                    vehicle          = repo.GetVehicleById(id),
                    saleLogViewModel = new SaleLogViewModel()
                };

                return(View(model));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Beispiel #21
0
        [TestCase(1, "test description", 1, 1, true, false, 1, 1, 1001, 50000.00, "placeholder.png", 45000.00, 1, "TEST1234667891234", 2020)] // passing test!
        public void CanAddVehicle(int bodyStyleID, string description, int exteriorColor, int interiorColor, bool isFeatured, bool isPurchased, int makeID, int modelID, int mileage, decimal msrp, string picture, decimal salePrice, int transmissionID, string vinNumber, int year)
        {
            Vehicle addVehicle = new Vehicle()
            {
                BodyStyleID = bodyStyleID, Description = description, ExteriorColor = exteriorColor, InteriorColor = interiorColor, IsFeatured = isFeatured, IsPurchased = isPurchased, MakeID = makeID, ModelID = modelID, Mileage = mileage, MSRP = msrp, Picture = picture, SalePrice = salePrice, TransmissionID = transmissionID, VinNumber = vinNumber, Year = year
            };

            var repo = VehicleRepositoryFactory.GetVehicleRepository();

            var returnedVehicle = repo.Add(addVehicle);
            var vehicles        = repo.GetVehicles();

            if (returnedVehicle != null)
            {
                Assert.AreEqual(7, vehicles.Count());
            }
            else
            {
                Assert.AreEqual(6, vehicles.Count());
            }
        }
        public IHttpActionResult SearchAdminVehicles(string searchTerm, decimal priceMin, decimal priceMax, int yearMin, int yearMax, int mileage)
        {
            var vehicleRepo  = VehicleRepositoryFactory.GetVehicleRepository();
            var bodystyles   = BodyStyleRepositoryFactory.GetBodyStyleRepository().GetBodyStyles();
            var colors       = ColorRepositoryFactory.GetColorRepository().GetColors();
            var makes        = MakeRepositoryFactory.GetMakeRepository().GetMakes();
            var models       = ModelRepositoryFactory.GetModelRepository().GetModels();
            var transmission = TransmissionTypeRepositoryFactory.GetTransmissionTypeRepository().GetTransmissions();

            if (searchTerm == "chipmunk")
            {
                searchTerm = "";
            }

            try
            {
                var vehicles         = vehicleRepo.GetVehiclesBySearchParameters(searchTerm, priceMin, priceMax, yearMin, yearMax, mileage);
                var vehiclesToReturn = new List <VehicleDisplayVM>();
                foreach (var vehicle in vehicles)
                {
                    var model = new VehicleDisplayVM();

                    model.Vehicle       = vehicle;
                    model.Model         = models.FirstOrDefault(m => m.ModelID == vehicle.ModelID);
                    model.Make          = makes.FirstOrDefault(m => m.MakeID == vehicle.MakeID);
                    model.BodyStyle     = bodystyles.FirstOrDefault(b => b.BodyStyleID == vehicle.BodyStyleID);
                    model.ExteriorColor = colors.FirstOrDefault(c => c.ColorID == vehicle.ExteriorColor);
                    model.InteriorColor = colors.FirstOrDefault(c => c.ColorID == vehicle.InteriorColor);
                    model.Transmission  = transmission.FirstOrDefault(t => t.TransmissionID == vehicle.TransmissionID);

                    vehiclesToReturn.Add(model);
                }
                vehiclesToReturn.RemoveAll(v => v.Vehicle.IsPurchased == true);
                return(Ok(vehiclesToReturn));
            }
            catch
            {
                return(BadRequest());
            }
        }
Beispiel #23
0
        public IHttpActionResult DeleteVehicle(int vehicleId)
        {
            var repo    = VehicleRepositoryFactory.GetVehicleRepository();
            var vehicle = repo.GetVehicleById(vehicleId);

            // Remove the image
            var savepath = HostingEnvironment.MapPath("~/Images/Vehicles");

            var existingFilePath = Path.Combine(savepath, vehicle.ImageFileName);

            // Delete the existing file
            if (File.Exists(existingFilePath))
            {
                File.Delete(existingFilePath);
            }


            // Now remove Database record
            repo.DeleteVehicle(vehicleId);

            return(Ok());
        }
Beispiel #24
0
        [TestCase(1, "test description", 1, 1, true, false, 1, 1, 1001, 50000.00, "placeholder.png", 45000.00, 1, "TEST1234667891234", 2020)] // passing test!
        public void CanEditVehicle(int bodyStyleID, string description, int exteriorColor, int interiorColor, bool isFeatured, bool isPurchased, int makeID, int modelID, int mileage, decimal msrp, string picture, decimal salePrice, int transmissionID, string vinNumber, int year)
        {
            Vehicle editVehicle = new Vehicle()
            {
                BodyStyleID = bodyStyleID, Description = description, ExteriorColor = exteriorColor, InteriorColor = interiorColor, IsFeatured = isFeatured, IsPurchased = isPurchased, MakeID = makeID, ModelID = modelID, Mileage = mileage, MSRP = msrp, Picture = picture, SalePrice = salePrice, TransmissionID = transmissionID, VinNumber = vinNumber, Year = year
            };

            editVehicle.Description = "This is the update!";

            var repo            = VehicleRepositoryFactory.GetVehicleRepository();
            var returnedVehicle = repo.Edit(editVehicle);

            if (returnedVehicle != null)
            {
                var vehicleTest = VehicleRepositoryFactory.GetVehicleRepository().GetVehicleByVIN(vinNumber);

                Assert.AreEqual("This is the update!", vehicleTest.Description);
            }
            else
            {
                Assert.AreEqual(null, returnedVehicle);
            }
        }
        public ActionResult EditVehicle(DetailsVM editVehicle)
        {
            if (editVehicle.Vehicle.Year < 2000 || editVehicle.Vehicle.Year > 2021)
            {
                ModelState.AddModelError("Vehicle.Year", "Please enter a year between 2000 and 2021.");
            }
            if (editVehicle.Vehicle.MSRP <= 0)
            {
                ModelState.AddModelError("Vehicle.MSRP", "MSRP must be greater than $0.");
            }
            if (editVehicle.Vehicle.SalePrice < 0)
            {
                ModelState.AddModelError("Vehicle.SalePrice", "SalePrice must be greater than $0.");
            }
            if (editVehicle.Vehicle.MSRP < editVehicle.Vehicle.SalePrice)
            {
                ModelState.AddModelError("Vehicle.MSRP", "SalePrice must be lower than MSRP.");
            }
            if (ModelState.IsValid)
            {
                editVehicle.Vehicle.Picture = "placeholder.png";
                VehicleRepositoryFactory.GetVehicleRepository().Edit(editVehicle.Vehicle);
                return(RedirectToAction("Index", "Home"));
            }
            else
            {
                var viewModel = new DetailsVM();
                viewModel.Vehicle      = editVehicle.Vehicle;
                viewModel.BodyStyles   = BodyStyleRepositoryFactory.GetBodyStyleRepository().GetBodyStyles();
                viewModel.Colors       = ColorRepositoryFactory.GetColorRepository().GetColors();
                viewModel.Makes        = MakeRepositoryFactory.GetMakeRepository().GetMakes();
                viewModel.Models       = ModelRepositoryFactory.GetModelRepository().GetModels();
                viewModel.Transmission = TransmissionTypeRepositoryFactory.GetTransmissionTypeRepository().GetTransmissions();

                return(View(viewModel));
            }
        }
Beispiel #26
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));
            }
        }
Beispiel #27
0
        [TestCase("Ni", 0.00, 1000000.00, 2000, 2021, -1)] // used inventory test - searchTerm provided
        //[TestCase("Ni", 0.00, 9000.00, 2015, 2017, -1)] // used inventory test - searchTerm provided, priceMax set

        //[TestCase("", 0.00, 100000.00, 2000, 2021, -2)] // new inventory test - no search terms entered
        //[TestCase("", 0.00, 100000.00, 2020, 2021, -2)] // new inventory test - year min/max entered
        //[TestCase("", 9000.00, 9200.00, 2000, 2021, -1)] // new inventory test - price min/max entered
        //[TestCase("Ni", 0.00, 1000000.00, 2000, 2021, -1)] // new inventory test - searchTerm provided
        //[TestCase("Ni", 0.00, 9000.00, 2015, 2017, -1)] // new inventory test - searchTerm provided, priceMax set
        public void CanGetVehicleBySearchParameters(string searchTerm, decimal priceMin, decimal priceMax, int yearMin, int yearMax, int mileage)
        {
            var vehicles = VehicleRepositoryFactory.GetVehicleRepository().GetVehicles();
            var makes    = MakeRepositoryFactory.GetMakeRepository().GetMakes();
            var models   = ModelRepositoryFactory.GetModelRepository().GetModels();

            // used vehicle search, no search terms entered
            if (searchTerm == "" && priceMin == 0.00m && priceMax == 100000.00m && yearMin == 2000 && yearMax == 2021 && mileage == -1)
            {
                vehicles = vehicles.Where(v => v.Mileage > 1000).OrderBy(v => v.MSRP).Take(20).ToList();
                Assert.AreEqual(4, vehicles.Count());
            }
            // new vehicle search, no search terms entered
            else if (searchTerm == "" && priceMin == 0.00m && priceMax == 100000.00m && yearMin == 2000 && yearMax == 2021 && mileage == -2)
            {
                vehicles = vehicles.Where(v => v.Mileage < 1000).OrderBy(v => v.MSRP).Take(20).ToList();
                Assert.AreEqual(3, vehicles.Count());
            }
            // admin or sales vehicle search, no search terms entered
            else if (searchTerm == "" && priceMin == 0.00m && priceMax == 100000.00m && yearMin == 2000 && yearMax == 2021 && mileage == -3)
            {
                vehicles = vehicles.OrderBy(v => v.MSRP).Take(20).ToList();
                Assert.AreEqual(7, vehicles.Count());
            }
            else if (mileage == -1) // used vehicle, price min/max or year min/max was entered
            {
                vehicles = vehicles.Where(v => v.Mileage > 1000).ToList();
                var vehiclesToReturn = new List <Vehicle>();
                if (searchTerm != "")
                {
                    foreach (var vehicle in vehicles)
                    {
                        var model = new VehicleWithNames();

                        model.Vehicle = vehicle;
                        model.Model   = models.FirstOrDefault(m => m.ModelID == vehicle.ModelID);
                        model.Make    = makes.FirstOrDefault(m => m.MakeID == vehicle.MakeID);

                        if (model.Make.MakeName.Contains(searchTerm) || model.Model.ModelName.Contains(searchTerm) || model.Vehicle.Year.ToString().Contains(searchTerm))
                        {
                            vehiclesToReturn.Add(model.Vehicle);
                        }
                    }
                }

                if (vehiclesToReturn.Count() > 0)
                {
                    vehiclesToReturn.RemoveAll(v => v.SalePrice < priceMin);
                    vehiclesToReturn.RemoveAll(v => v.SalePrice > priceMax);
                    vehiclesToReturn.RemoveAll(v => v.Year < yearMin);
                    vehiclesToReturn.RemoveAll(v => v.Year > yearMax);

                    Assert.AreEqual(2, vehiclesToReturn.Count());
                }
                else
                {
                    vehicles.RemoveAll(v => v.SalePrice < priceMin);
                    vehicles.RemoveAll(v => v.SalePrice > priceMax);
                    vehicles.RemoveAll(v => v.Year < yearMin);
                    vehicles.RemoveAll(v => v.Year > yearMax);
                }

                Assert.AreEqual(2, vehicles.Count());
            }
            else if (mileage == -2)
            {
                vehicles = vehicles.Where(v => v.Mileage < 1000).ToList();
                Assert.AreEqual(3, vehicles.Count());

                if (searchTerm != "")
                {
                    foreach (var vehicle in vehicles)
                    {
                        var model = new VehicleWithNames();

                        model.Vehicle = vehicle;
                        model.Model   = models.FirstOrDefault(m => m.ModelID == vehicle.ModelID);
                        model.Make    = makes.FirstOrDefault(m => m.MakeID == vehicle.MakeID);

                        if (model.Make.MakeName.Contains(searchTerm) || model.Model.ModelName.Contains(searchTerm) || model.Vehicle.Year.ToString().Contains(searchTerm))
                        {
                            vehicles.Add(model.Vehicle);
                        }
                    }
                }

                vehicles.RemoveAll(v => v.SalePrice < priceMin);
                vehicles.RemoveAll(v => v.SalePrice > priceMax);
                vehicles.RemoveAll(v => v.Year < yearMin);
                vehicles.RemoveAll(v => v.Year > yearMax);

                throw new NotImplementedException();
            }
        }