public async Task <IActionResult> AdminCreate(MakeBooking basicBooking) { if (ModelState.IsValid) { var _booking = new Booking { RoomID = basicBooking.RoomID, CustomerEmail = basicBooking.CustomerEmail, CheckIn = basicBooking.CheckIn, CheckOut = basicBooking.CheckOut }; TimeSpan timeDiff = _booking.CheckOut - _booking.CheckIn; decimal nights = Convert.ToDecimal(timeDiff.TotalDays); var theRoom = await _context.Room.FindAsync(basicBooking.RoomID); _booking.Cost = theRoom.Price * nights; _context.Add(_booking); await _context.SaveChangesAsync(); return(View("~/Views/Bookings/Confirmation.cshtml", _booking)); } ViewData["CustomerEmail"] = new SelectList(_context.Set <Customer>(), "Email", "Email", basicBooking.CustomerEmail); ViewData["RoomID"] = new SelectList(_context.Set <Room>(), "ID", "ID", basicBooking.RoomID); return(View(basicBooking)); }
public void Setup() { var bookingOneId = Guid.NewGuid(); var bookingTwoId = Guid.NewGuid(); bookingOne = new MakeBooking() { Id = bookingOneId, BookingId = bookingOneId, Name = "Simon", Phone = "456464646", Email = "*****@*****.**", CheckInDate = new DateTime(), CheckOutDate = new DateTime(), }; bookingTwo = new MakeBooking() { Id = bookingTwoId, BookingId = bookingTwoId, Name = "Alejandro", Phone = "Cristian", Email = "*****@*****.**", CheckInDate = new DateTime(), CheckOutDate = new DateTime() }; }
private void ReserveButton_Click(object sender, EventArgs e) { var makeBooking = new MakeBooking(); makeBooking.ShowDialog(); if (MakeBooking.MakeBookingButtonCliked) { showAllReservations(); } }
public async Task <IActionResult> Create(MakeBooking basicBooking) { string _email = User.FindFirst(ClaimTypes.Name).Value; if (ModelState.IsValid) { var roomID = new SqliteParameter("roomID", basicBooking.RoomID); var checkIn = new SqliteParameter("in", basicBooking.CheckIn); var checkOut = new SqliteParameter("out", basicBooking.CheckOut); var freeBookings = _context.Booking.FromSql("select * from [Booking] inner join [Room] on [Booking].RoomID = [Room].ID " + "where [Booking].RoomID = @roomID and @in >= [Booking].checkIn" + " and @out <= [Booking].checkOut", roomID, checkIn, checkOut) .Select(mo => new Booking { ID = mo.ID, RoomID = mo.RoomID, CustomerEmail = mo.CustomerEmail, CheckIn = mo.CheckIn, CheckOut = mo.CheckOut, Cost = mo.Cost }); ViewBag.FreeBookings = await freeBookings.ToListAsync(); if (ViewBag.FreeBookings.Count == 0) { var booking = new Booking { RoomID = basicBooking.RoomID, CheckIn = basicBooking.CheckIn, CheckOut = basicBooking.CheckOut, CustomerEmail = _email }; var theRoom = await _context.Room.FindAsync(basicBooking.RoomID); var theCustomer = await _context.Customer.FindAsync(_email); theCustomer.Email = _email; TimeSpan diff = basicBooking.CheckOut - basicBooking.CheckIn; double noOfDays = diff.TotalDays; booking.Cost = theRoom.Price * noOfDays; _context.Add(booking); await _context.SaveChangesAsync(); ViewBag.roomLevel = theRoom.Level; ViewBag.totalCost = booking.Cost; } } return(View(basicBooking)); }
public IActionResult Book(MakeBooking makeBooking) { if (ModelState.IsValid) { makeBooking.Id = Guid.NewGuid(); makeBooking.BookingId = makeBooking.Id; _domain.Dispatcher.SendCommand(makeBooking); return(RedirectToAction("Booking", new { result = true })); } return(RedirectToAction("Booking", new { result = false })); }
private void HolidayBooked(HolidayBookedEvent @event) { _holidayRepository.Save(@event.Source); var makeBookingCommand = new MakeBooking { Id = @event.Source.Id.Value, EmployeeId = @event.Source.Employee.Id.Value, Start = @event.Source.Start, End = @event.Source.End, BookingTypeId = Constants.HolidayBookingTypeId }; _bus.Send(makeBookingCommand); }
private void AppointmentBooked(AppointmentBookedEvent @event) { _appointmentRepository.Save(@event.Source); //todo: still a problem here. //Some logic has slipped into here on how to raise a command to make a booking. var makeBookingCommand = new MakeBooking { Id = @event.Source.Id.Value, EmployeeId = @event.Source.ConsultantId, Start = @event.Source.Date + @event.Source.StartTime, End = @event.Source.Date + @event.Source.EndTime, BookingTypeId = Constants.SalesAppointmentBookingTypeId }; _bus.Send(makeBookingCommand); }
public async Task <IActionResult> Create(MakeBooking makeBooking) { if (ModelState.IsValid) { var rID = new SqliteParameter("rID", makeBooking.RoomID); var cInDate = new SqliteParameter("checkIn", makeBooking.CheckIn); var cOutDate = new SqliteParameter("checkOut", makeBooking.CheckOut); var searchRoom = _context.Room.FromSql("select * from [Room]" + "where [Room].ID = @rID and [Room].ID not in " + "(select [Room].ID from [Room] inner join [Booking] on [Room].ID = [Booking].RoomID " + "where ([Booking].checkIn <= @checkIn and [Booking].checkOut >= @checkIn)" + "or ([Booking].checkIn >= @checkIn and[Booking].checkOut <= @checkOut)" + "or ([Booking].checkIn <= @checkOut and [Booking].checkOut >= @checkOut))", rID, cInDate, cOutDate); ViewBag.Results = await searchRoom.ToListAsync(); if (ViewBag.Results.Count != 0) { if (User.IsInRole("Customers")) { var booking = new Booking() { RoomID = makeBooking.RoomID, CustomerEmail = User.Identity.Name, CheckIn = makeBooking.CheckIn, CheckOut = makeBooking.CheckOut }; var theRoom = await _context.Room.FindAsync(makeBooking.RoomID); var lengthOfStay = (makeBooking.CheckOut - makeBooking.CheckIn).TotalDays; ViewData["MyBooking"] = booking; if (lengthOfStay != 0) { booking.Cost = theRoom.Price * (decimal)lengthOfStay; } else { booking.Cost = theRoom.Price; } _context.Add(booking); await _context.SaveChangesAsync(); return(View(makeBooking)); // return RedirectToAction(nameof(Index)); } else { var booking = new Booking() { RoomID = makeBooking.RoomID, CustomerEmail = makeBooking.CustomerEmail, CheckIn = makeBooking.CheckIn, CheckOut = makeBooking.CheckOut }; var theRoom = await _context.Room.FindAsync(makeBooking.RoomID); var lengthOfStay = (makeBooking.CheckOut - makeBooking.CheckIn).TotalDays; if (lengthOfStay != 0) { booking.Cost = theRoom.Price * (decimal)lengthOfStay; } else { booking.Cost = theRoom.Price; } _context.Add(booking); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(BookingManagement))); } } ViewData["RoomID"] = new SelectList(_context.Room, "ID", "ID", makeBooking.RoomID); ViewData["CustomerEmail"] = new SelectList(_context.Customer, "Email", "Email", makeBooking.CustomerEmail); return(View(makeBooking)); } return(View(makeBooking)); }