public static void Main()
        {
            var carRenter = new CarRenter();

            // add some cars to the center

            for (int i = 0; i < 15; i++)
            {
                carRenter.Store(new Car());
            }

            var driver1 = "Penka";
            var driver2 = "Zornica";
            var driver3 = "Stilqn";

            var penkasCar = carRenter.RentACar(driver1);
            var zornicasCar = carRenter.RentACar(driver2);
            var stilqnsCar = carRenter.RentACar(driver3);

            // should print driver names
            Console.WriteLine(penkasCar.Driver);
            Console.WriteLine(stilqnsCar.Driver);

            carRenter.ReturnCar(penkasCar);
            carRenter.ReturnCar(stilqnsCar);

            // should print empty lines, because the cars have been returned to the pool
            // but the car object still exist
            Console.WriteLine(penkasCar.Driver);
            Console.WriteLine(stilqnsCar.Driver);
        }
Exemple #2
0
        //Reposetory pattern
        // Setting Data
        public void AddCarRenter(CarRenter carRenter)
        {
            using (var db = new AppDbContext())
            {
                bool isAlreadyInThere = false;
                foreach (var lokalecarRenter in db.CarRenters)
                {
                    if (lokalecarRenter.ContactInfo == carRenter.ContactInfo)
                    {
                        isAlreadyInThere = true;
                        lokalecarRenter.CarRenterMessages = carRenter.CarRenterMessages;
                        lokalecarRenter.Cars = carRenter.Cars;
                        lokalecarRenter.DrivingLicenceNumber = carRenter.DrivingLicenceNumber;
                        lokalecarRenter.Name = carRenter.Name;
                        break;
                    }
                }

                if (!isAlreadyInThere)
                {
                    db.CarRenters.AddAsync(carRenter);
                }

                db.SaveChangesAsync();
            }
        }
Exemple #3
0
        public void ShouldBeAbleToRentACar()
        {
            var sut = new CarRenter();

            var result = sut.CustomerRentsCar(CarCategories.Compact, "198506141111", 0M);

            Assert.That(!string.IsNullOrWhiteSpace(result), "No booking number was returned");
        }
Exemple #4
0
 public void ShouldDetectNullValues2(string category, string ssn, decimal milage, string bn, decimal newmilage)
 {
     Assert.Throws <ArgumentNullException>(() =>
     {
         var sut           = new CarRenter();
         var bookingNumber = sut.CustomerRentsCar(category, ssn, milage);
         sut.CustomerReturnsCar(bn == null ? null: bookingNumber, newmilage);
     });
 }
Exemple #5
0
 public void ShouldFailOnReturningACarWithLessMilageThenAtRentTime()
 {
     Assert.Throws <Exception>(() =>
     {
         var sut           = new CarRenter();
         var bookingNumber = sut.CustomerRentsCar(CarCategories.Minivan, "198506141111", 1500M);
         sut.CustomerReturnsCar(bookingNumber, 15M);
     });
 }
Exemple #6
0
 public void ShouldFailOnReturningACarBeforeItWasRented()
 {
     Assert.Throws <Exception>(() =>
     {
         var time          = new FakeDateTimeProvider();
         var sut           = new CarRenter(time);
         var bookingNumber = sut.CustomerRentsCar(CarCategories.Minivan, "198506141111", 1);
         time.UtcNow       = new DateTime(1000, 1, 1);
         sut.CustomerReturnsCar(bookingNumber, 2);
     });
 }
Exemple #7
0
        public void ShouldBeAbleToReturnACar(string carCategory, DateTime timeOfRent, DateTime timeOfReturn)
        {
            var time = new FakeDateTimeProvider(timeOfRent);
            var sut  = new CarRenter(time);

            var bookingNumber = sut.CustomerRentsCar(carCategory, "198506141111", 0M);

            time.UtcNow = timeOfReturn;
            var result = sut.CustomerReturnsCar(bookingNumber, 0.1M);

            Assert.That(result != null && result > 0);
        }
Exemple #8
0
        public static void SeedDatabase()
        {
            using (var db = new AppDbContext())
            {
                var udlejerBesked = new CarOwnerMessage()
                {
                    HaveBeenRejected = false,
                    HaveBeenSeen     = true,
                    Commentary       = "Det kan du godt, skriv på min Email",
                    RentedFromTo     = "2019;8,6;2019;8;10"
                };

                var lejerBesked = new CarRenterMessage()
                {
                    ContactInfo  = "40091812",
                    HaveBeenSeen = false,
                    Commentary   = "Må jeg leje din Toyota",
                    RentedFromTo = "2019;8,6;2019;8;10"
                };

                var lejer = new CarRenter()
                {
                    ContactInfo          = "48781920",
                    Name                 = "Kasten",
                    DrivingLicenceNumber = "12938171",
                    Cars                 = new List <Car>(),
                    CarRenterMessages    = new List <CarRenterMessage>(),
                };

                var udlejer = new CarOwner
                {
                    KontactInfo           = "*****@*****.**",
                    Name                  = "Svend Jokumsen",
                    DrivingLicenceNumber  = "2",
                    CarRegistrationNumber = "53210",
                    Cars                  = new List <Car>(),
                    CarOwnerMessages      = new List <CarOwnerMessage>(),
                };
                var bil = new Car
                {
                    LicenceplateNumber = "AB123421",
                    Picture            = "asgmsa72u23p0i9isadfj2u2n7efmj",
                    HaveTowbar         = false,
                    Condition          = "Havde en ridse til i foreste højre dør",
                    IsReserved         = false,
                    Weight             = 420,
                    Hight = 170,
                    Width = 230,
                    Type  = "Varevogn",
                    Area  = "Aarhus",
                    PossibleToRentDays = new List <PossibleToRentDay>(),
                    DaysThatIsRented   = new List <DayThatIsRented>(),
                };
                List <PossibleToRentDay> PossibleToRentDayer = new List <PossibleToRentDay>();
                for (int i = 0; i < 20; i++)
                {
                    var PossibleToRentDay = new PossibleToRentDay()
                    {
                        Date = new DateTime(2019, 4, 8 + i),
                        Car  = bil,
                    };
                    PossibleToRentDayer.Add(PossibleToRentDay);
                }
                List <DayThatIsRented> udlejetDage = new List <DayThatIsRented>();
                for (int i = 0; i < 5; i++)
                {
                    var udlejetDag = new DayThatIsRented()
                    {
                        Date      = new DateTime(2019, 4, 8 + i),
                        Car       = bil,
                        CarRenter = lejer,
                    };

                    udlejetDage.Add(udlejetDag);
                }

                udlejerBesked.Car      = bil;
                udlejerBesked.CarOwner = udlejer;

                lejerBesked.Car       = bil;
                lejerBesked.CarRenter = lejer;

                lejer.Cars.Add(bil);
                lejer.CarRenterMessages.Add(lejerBesked);

                udlejer.Cars.Add(bil);
                udlejer.CarOwnerMessages.Add(udlejerBesked);

                bil.CarOwner  = udlejer;
                bil.CarRenter = lejer;



                foreach (var VARIABLE in udlejetDage)
                {
                    bil.DaysThatIsRented.Add(VARIABLE);
                    //db.AddDayThatIsRented(VARIABLE);
                }
                foreach (var VARIABLE in PossibleToRentDayer)
                {
                    bil.PossibleToRentDays.Add(VARIABLE);
                    //db.AddPossibleToRentDay(VARIABLE);
                }

                //db.AddCarOwnerMessage(udlejerBesked);
                //db.AddCarRenterMessage(lejerBesked);
                //db.AddCarRenter(lejer);
                //db.AddCarOwner(udlejer);
                //db.AddCar(bil);
            }
        }
Exemple #9
0
        public void AddCarRenterMessage(CarRenterMessage carRenterMessage, CarRenter carRenter)
        {
            // check if carRenter is linked up with carRenterMessage
            bool isAlreadyInThere = false;

            foreach (var carRenterMessages in carRenter.CarRenterMessages)
            {
                if (carRenterMessages.CarRenterMessageid == carRenterMessage.CarRenterMessageid)
                {
                    isAlreadyInThere = true;
                    carRenterMessages.ContactInfo  = carRenterMessage.ContactInfo;
                    carRenterMessages.HaveBeenSeen = carRenterMessage.HaveBeenSeen;
                    carRenterMessages.Commentary   = carRenterMessage.Commentary;
                    carRenterMessages.Car          = carRenterMessage.Car;
                    carRenterMessages.RentedFromTo = carRenterMessage.RentedFromTo;
                    carRenterMessages.CarRenter    = carRenterMessage.CarRenter;

                    break;
                }
            }

            if (!isAlreadyInThere)
            {
                carRenter.CarRenterMessages.Add(carRenterMessage);
            }

            // make sure carRenterMessage is linked up with carRenter
            carRenterMessage.CarRenter = carRenter;

            // make sure CarRenter is already in DB and update it, if not, add it.
            isAlreadyInThere = false;
            using (var db = new AppDbContext())
            {
                foreach (var localCarRenter in db.CarRenters)
                {
                    if (localCarRenter.ContactInfo == carRenter.ContactInfo)
                    {
                        isAlreadyInThere    = true;
                        localCarRenter.Name = carRenter.Name;
                        localCarRenter.DrivingLicenceNumber = carRenter.DrivingLicenceNumber;
                        localCarRenter.Cars = carRenter.Cars;
                        localCarRenter.CarRenterMessages = carRenter.CarRenterMessages;
                        break;
                    }
                }
                if (isAlreadyInThere)
                {
                    db.CarRenters.AddAsync(carRenter);
                }

                // make sure CarRenterMessage is already in DB and update it, if not, add it.
                isAlreadyInThere = false;
                foreach (var localCarRenterMessages in db.CarRenterMessages)
                {
                    if (localCarRenterMessages.CarRenterMessageid == carRenterMessage.CarRenterMessageid)
                    {
                        isAlreadyInThere = true;
                        localCarRenterMessages.ContactInfo  = carRenterMessage.ContactInfo;
                        localCarRenterMessages.HaveBeenSeen = carRenterMessage.HaveBeenSeen;
                        localCarRenterMessages.Commentary   = carRenterMessage.Commentary;
                        localCarRenterMessages.Car          = carRenterMessage.Car;
                        localCarRenterMessages.RentedFromTo = carRenterMessage.RentedFromTo;
                        localCarRenterMessages.CarRenter    = carRenterMessage.CarRenter;
                        break;
                    }
                }
                if (isAlreadyInThere)
                {
                    db.CarRenters.AddAsync(carRenter);
                }

                // make sure CarRenter is already in DB and update it, if not, add it.
                isAlreadyInThere = false;
                foreach (var carRenterMessages in carRenter.CarRenterMessages)
                {
                    if (carRenterMessages.CarRenterMessageid == carRenterMessage.CarRenterMessageid)
                    {
                        isAlreadyInThere = true;
                        carRenterMessages.ContactInfo  = carRenterMessage.ContactInfo;
                        carRenterMessages.HaveBeenSeen = carRenterMessage.HaveBeenSeen;
                        carRenterMessages.Commentary   = carRenterMessage.Commentary;
                        carRenterMessages.Car          = carRenterMessage.Car;
                        carRenterMessages.RentedFromTo = carRenterMessage.RentedFromTo;
                        carRenterMessages.CarRenter    = carRenterMessage.CarRenter;

                        break;
                    }
                }

                if (!isAlreadyInThere)
                {
                    carRenter.CarRenterMessages.Add(carRenterMessage);
                }
                db.CarRenterMessages.AddAsync(carRenterMessage);

                db.SaveChangesAsync();
            }
        }