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); }
//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(); } }
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"); }
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); }); }
public void ShouldFailOnReturningACarWithLessMilageThenAtRentTime() { Assert.Throws <Exception>(() => { var sut = new CarRenter(); var bookingNumber = sut.CustomerRentsCar(CarCategories.Minivan, "198506141111", 1500M); sut.CustomerReturnsCar(bookingNumber, 15M); }); }
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); }); }
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); }
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); } }
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(); } }