public ActionResult Add(SettingsViewModel addForm)
        {
            //Grab users email to add to correct collection document
            string usersEmail = addForm.Email;

            //Get the type of car selected by the CarID
            string CarSelected = GetSelectedCarType(addForm.CarType);



            //Create new UsersCar object to add into database -> Gets information from the Form
            UsersCars newCar = new UsersCars();

            newCar.CarID         = Guid.NewGuid().ToString();
            newCar.Type          = CarSelected;
            newCar.mileage       = addForm.Mileage;
            newCar.monthsOwned   = addForm.MonthsOwned;
            newCar.totalSpent    = addForm.TotalSpent;
            newCar.InspectionDue = addForm.InspectionDate;
            newCar.CarNickname   = addForm.CarNickname;
            //Create a statement that initializes a personal maintenance object
            newCar.PersonalMaintenance = dal.InitializePersonalMaintenance(newCar.mileage, newCar.totalSpent);

            //If dal.AddCar is succesful -> redirects to users setting page
            if (dal.AddCar(usersEmail, newCar))
            {
                Session["email"] = usersEmail;
                var email = (string)Session["email"];
                return(RedirectToAction("Settings", "Manage", new { email }));
            } //Not successful throw error
            else
            {
                throw new Exception("Error");
            }
        }
        public void RemoveCar_WhenValidParametersArePassed()
        {
            // Arrange
            var unitOfWorkMock = new Mock <IUnitOfWork>();
            var carServiceMock = new Mock <ICarService>();

            string username = "******";
            int    carId    = 1;

            var user = new User()
            {
                Username = username,
            };
            var users = new List <User>()
            {
                user
            };

            var car = new Car()
            {
                Id = 1
            };
            var cars = new List <Car>()
            {
                car
            };

            var userCar = new UsersCars()
            {
                CarId = car.Id, User = user
            };
            var usersCars = new List <UsersCars>()
            {
                userCar
            };

            carServiceMock.Setup(c => c.GetCar(It.IsAny <int>())).Returns(car);
            unitOfWorkMock.Setup(u => u.GetRepository <User>().All()).Returns(users.AsQueryable());
            unitOfWorkMock.Setup(u => u.GetRepository <Car>().All()).Returns(cars.AsQueryable());
            unitOfWorkMock.Setup(u => u.GetRepository <UsersCars>().All()).Returns(usersCars.AsQueryable());

            var sut = new UserService(unitOfWorkMock.Object, carServiceMock.Object);

            // Act
            sut.RemoveCarFromFavorites(carId, username);

            // Assert
            unitOfWorkMock.Verify(u => u.GetRepository <UsersCars>().Delete(It.IsAny <UsersCars>()), Times.Once);

            unitOfWorkMock.Verify(c => c.SaveChanges(), Times.Once);
        }
Exemple #3
0
        public void DeleteCarExtra_WhenValidParametersArePassed()
        {
            // Arrange
            var unitOfWorkMock = new Mock <IUnitOfWork>();

            int carId = 1;
            var car   = new Car()
            {
                Id = carId
            };
            var cars = new List <Car>()
            {
                car
            };

            var userCar = new UsersCars()
            {
                CarId = car.Id, UserId = 1
            };
            var usersCars = new List <UsersCars>()
            {
                userCar
            };

            var carExtra = new CarsExtras()
            {
                CarId = car.Id, ExtraId = 1
            };
            var carsExtras = new List <CarsExtras>()
            {
                carExtra
            };

            unitOfWorkMock.Setup(u => u.GetRepository <Car>().All()).Returns(cars.AsQueryable());

            unitOfWorkMock.Setup(u => u.GetRepository <UsersCars>().All()).Returns(usersCars.AsQueryable());

            unitOfWorkMock.Setup(u => u.GetRepository <CarsExtras>().All()).Returns(carsExtras.AsQueryable());

            var sut = new CarService(unitOfWorkMock.Object);

            // Act
            sut.RemoveCar(carId);

            // Assert
            unitOfWorkMock.Verify(u => u.GetRepository <CarsExtras>().Delete(It.IsAny <CarsExtras>()), Times.Once);

            unitOfWorkMock.Verify(c => c.SaveChanges(), Times.Once);
        }
        public void ThrowServiceException_WhenCarAlreadyInFavorites()
        {
            // Arrange
            var unitOfWorkMock = new Mock <IUnitOfWork>();
            var carServiceMock = new Mock <ICarService>();

            string username = "******";
            int    carId    = 1;

            var user = new User()
            {
                UserName = username
            };
            var users = new List <User>()
            {
                user
            };

            var car = new Car()
            {
                Id = 1
            };
            var cars = new List <Car>()
            {
                car
            };

            var userCar = new UsersCars()
            {
                CarId = car.Id, UserId = user.Id
            };
            var usersCars = new List <UsersCars>()
            {
                userCar
            };

            carServiceMock.Setup(c => c.GetCar(It.IsAny <int>())).Returns(car);
            unitOfWorkMock.Setup(u => u.GetRepository <User>().All()).Returns(users.AsQueryable());
            unitOfWorkMock.Setup(u => u.GetRepository <Car>().All()).Returns(cars.AsQueryable());
            unitOfWorkMock.Setup(u => u.GetRepository <UsersCars>().All()).Returns(usersCars.AsQueryable());

            var sut = new UserService(unitOfWorkMock.Object, carServiceMock.Object);

            // Act && Assert
            Assert.ThrowsException <ServiceException>(() => sut.AddCarToFavorites(carId, username));
        }
Exemple #5
0
        public async Task <Car> AddCarToFavorites(int carId, User user)
        {
            Car car = await this.carService.GetCarAsync(carId).ConfigureAwait(false);

            var isCarFavorite = IsCarFavorite(carId, user);

            if (!isCarFavorite)
            {
                var newUserCar = new UsersCars()
                {
                    CarId = carId, User = user
                };
                this.dealershipContext.UsersCars.Add(newUserCar);
                this.dealershipContext.SaveChanges();
            }

            return(car);
        }
        public Car AddCarToFavorites(int carId, User user)
        {
            Car car = this.carService.GetCar(carId);

            var isCarFavorite = IsCarFavorite(carId, user);

            if (isCarFavorite)
            {
                throw new ServiceException("This car is already added to favorites.");
            }

            var newUserCar = new UsersCars()
            {
                CarId = carId, User = user
            };

            this.dealershipContext.UsersCars.Add(newUserCar);
            this.dealershipContext.SaveChanges();
            return(car);
        }