public void InvalidRequestFails() { var request = new MakeBookingRequest(); var customer = new Customer() { Id = Guid.NewGuid(), FamilyName = "Blue" }; var vehicle = new Vehicle() { Id = Guid.NewGuid() }; vehicle.Bookings = new List <Booking>() { new Booking() { StartDate = new DateTime(2050, 9, 30), EndDate = new DateTime(2050, 10, 2), Vehicle = vehicle } }; request.Customer = customer; request.StartDate = new DateTime(2050, 10, 1); request.EndDate = new DateTime(2050, 10, 3); request.Vehicle = vehicle; var validationMessages = Booking.ValidateMake(request); Assert.AreEqual(1, validationMessages.Count); Assert.IsTrue(validationMessages.Any(x => x.Text.Equals("Booking conflicts with existing bookings."))); }
public MakeBookingResponse MakeBooking(MakeBookingRequest request) { PublicServiceDAO publicDAO = new PublicServiceDAO(); int itemId = publicDAO.MakeBooking(request.user_trr, request.apartment_id, request.date_from, request.date_to, request.package_arrangment_id, request.discount_code, request.bank_payment); if (itemId != -1) { if (request.package_arrangment_id != 0) { TaxiAccess.OrderTaxi(StaticData.ComplexInfo.Address, request.num_of_people, DateTime.FromFileTimeUtc(request.date_from)); AquaParkAccess.ReserveAndPayForEvent(1, request.num_of_people, request.user_trr.ToString()); if (request.bank_payment) { BankAccess.PlayEBill(1, request.user_trr, request.pin_number, 12.0d); } else { BankAccess.PayWithCard(request.user_trr, request.pin_number, 12.0d); } } return(new MakeBookingResponse(booking_response.booked, itemId)); } else { return(new MakeBookingResponse(booking_response.failed, itemId)); } }
public void ValidRequestPasses() { var request = new MakeBookingRequest(); var customer = new Customer() { Id = Guid.NewGuid(), FamilyName = "Blue" }; var vehicle = new Vehicle() { Id = Guid.NewGuid() }; vehicle.Bookings = new List <Booking>() { new Booking() { StartDate = new DateTime(2050, 9, 1), EndDate = new DateTime(2050, 9, 3), Vehicle = vehicle } }; request.Customer = customer; request.StartDate = new DateTime(2050, 10, 1); request.EndDate = new DateTime(2050, 10, 3); request.Vehicle = vehicle; var validationMessages = Booking.ValidateMake(request); Assert.AreEqual(0, validationMessages.Count); }
public void CanMakeBooking() { var request = new MakeBookingRequest(); var customer = new Customer() { Id = Guid.NewGuid(), FamilyName = "Blue" }; var vehicle = new Vehicle() { Id = Guid.NewGuid(), PricePerDay = 100m }; request.Customer = customer; request.StartDate = new DateTime(2050, 10, 1); request.EndDate = new DateTime(2050, 10, 3); request.Vehicle = vehicle; var booking = Booking.Make(request); Assert.IsNotNull(booking.Id); Assert.AreNotEqual(default(Guid), booking.Id.Value); Assert.IsNotNull(booking.BookingNumber); Assert.AreEqual(request.StartDate, booking.StartDate); Assert.AreEqual(request.EndDate, booking.EndDate); Assert.AreSame(customer, booking.Customer); Assert.AreSame(vehicle, booking.Vehicle); Assert.AreEqual(300m, booking.Total); }
public static ValidationMessageCollection ValidateMake(MakeBookingRequest request) { var validationMessages = new ValidationMessageCollection(); if (!request.StartDate.HasValue || request.StartDate.Value == default(DateTime)) { validationMessages.AddError("StartDate", "Start date is required."); } else { if (request.StartDate.Value < DateTime.Now.Date) { validationMessages.AddError("StartDate", "Start date must not be in the past."); } } if (!request.EndDate.HasValue || request.EndDate.Value == default(DateTime)) { validationMessages.AddError("EndDate", "End date is required."); } else { if (request.EndDate.Value < DateTime.Now) { validationMessages.AddError("EndDate", "End date must not be in the past."); } } if (request.StartDate.HasValue && request.EndDate.HasValue) { if (request.EndDate.Value < request.StartDate.Value) { validationMessages.AddError("EndDate", "End date must not be before start date."); } } if (request.Vehicle == null) { validationMessages.AddError("Vehicle", "Vehicle is required."); } if (request.Customer == null) { validationMessages.AddError("Customer", "Customer is required."); } if (request.Vehicle != null && request.StartDate.HasValue && request.EndDate.HasValue && request.Vehicle.GetConflictingBookings(request.StartDate.Value, request.EndDate.Value).Any()) { validationMessages.AddError("", "Booking conflicts with existing bookings."); } return(validationMessages); }
public MakeBookingRequest Map(MakeViewModel viewModel) { var request = new MakeBookingRequest(); request.StartDate = viewModel.StartDate; request.EndDate = viewModel.EndDate; request.Vehicle = viewModel.VehicleId.HasValue ? _vehicleRepository.GetById(viewModel.VehicleId.Value) : null; var username = _userProvider.GetUsername(); request.Customer = _customerRepository.GetByUsername(username); return(request); }
public void CanAddBooking() { Guid bookingId; var makeBookingRequest = new MakeBookingRequest() { StartDate = new DateTime(2015, 01, 12), EndDate = new DateTime(2015, 01, 16) }; using (_contextProvider) { var applicationUser = _userRepository.GetById(UserIds.Application); makeBookingRequest.Vehicle = _vehicleRepository.GetById(VehicleIds.SF59QRT); makeBookingRequest.Customer = Customer.Register(new RegisterCustomerRequest() { UserId = Guid.NewGuid(), EmailAddress = "*****@*****.**", //CustomerRole = FamilyName = "Green", GivenName = "Gary", Address1 = "3 Green Road", Address2 = "Greenton", Address3 = "Greenshire", PostCode = "GN1 1AA", ApplicationUser = applicationUser }); var booking = Booking.Make(makeBookingRequest); _bookingRepository.Save(booking); bookingId = booking.Id.Value; _contextProvider.SaveChanges(); } using (_contextProvider) { var allBookings = _bookingRepository.GetAll(); var storedBooking = _bookingRepository.GetById(bookingId); Assert.AreEqual(1, allBookings.Count); Assert.IsNotNull(storedBooking.Id); Assert.IsNotNull(storedBooking.BookingNumber); Assert.AreEqual(makeBookingRequest.EndDate, storedBooking.EndDate); Assert.AreEqual(makeBookingRequest.EndDate, storedBooking.EndDate); Assert.AreEqual(makeBookingRequest.Customer.User.Id.Value, storedBooking.CreatedBy.Id.Value); Assert.AreEqual("Green", storedBooking.Customer.FamilyName); Assert.AreEqual("Gary", storedBooking.Customer.GivenName); Assert.AreEqual("Ford", storedBooking.Vehicle.Make); Assert.AreEqual("Transit", storedBooking.Vehicle.Model); } }
public static Booking Make(MakeBookingRequest request) { var booking = new Booking(); booking.Id = Guid.NewGuid(); booking.BookingNumber = request.Customer.FamilyName.ToUpper() + DateTime.Now.ToString("yyMMddHHmmss"); booking.StartDate = request.StartDate.Value; booking.EndDate = request.EndDate.Value; booking.Customer = request.Customer; booking.CreatedBy = request.Customer.User; booking.Vehicle = request.Vehicle; var totalDays = (request.EndDate.Value - request.StartDate.Value).Days + 1; booking.Total = totalDays * request.Vehicle.PricePerDay; return(booking); }
public ActionResult Post([FromBody] MakeBookingRequest request) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } makeBookingRequest.Booking = new Booking { Name = request.Name, Start = request.Start, End = request.End, Space = request.Space }; makeBookingRequest.Execute(); return((makeBookingResponseHandler as MakeBookingPresenter).Result); }
public MakeBookingResponse MakeBooking(MakeBookingRequest request) { return(new MakeBookingResponse(booking_response.booked)); }
public ValidationMessageCollection ValidateMake(MakeBookingRequest request) { var otherBookings = _bookingRepository.GetByEmployeeId(request.EmployeeId); return(Booking.ValidateMake(otherBookings, request.Start, request.End)); }