public async Task <ActionResult> Bookings(string tenant, int bookingId, int guestId, decimal roomPrice, int roomsCount, int roomId) { try { bool purchaseResult = false; var ticketPurchaseModel = new BookingPurchaseModel { GuestId = guestId, TotalPrice = roomPrice }; var tenantDetails = (_catalogRepository.GetTenantAsync(tenant)).Result; if (tenantDetails != null) { SetTenantConfig(tenantDetails.TenantId, tenantDetails.TenantIdInString); var hotelDetails = await _tenantRepository.GetHotelDetailsAsync(tenantDetails.TenantId); var bookingsPurchaseId = await _tenantRepository.AddBookingPurchase(ticketPurchaseModel, tenantDetails.TenantId); List <BookingModel> ticketsModel = BuildTicketModel(bookingId, roomId, roomsCount, bookingsPurchaseId); purchaseResult = await _tenantRepository.AddBookings(ticketsModel, tenantDetails.TenantId); var guest = HttpContext.Session.GetObjectFromJson <List <GuestModel> >("SessionUsers"); if (purchaseResult) { DisplayMessage(_localizer[$"You have successfully booked {roomsCount} rooms(s)."], "Confirmation"); var fromHotelEmailId = hotelDetails.AdminEmail; var fromHotelName = hotelDetails.HotelName; var toEmailAddress = guest[0].Email; var fullName = $"{guest[0].FirstName} {guest[0].LastName}"; var confirmMessage = _localizer[$"You have successfully booked {roomsCount} rooms(s)."]; _emailService.SendEmailToGuests(fromHotelEmailId, fromHotelName, toEmailAddress, fullName, confirmMessage); } else { DisplayMessage(_localizer["Failed to book rooms."], "Error"); } } else { return(View("TenantError", tenant)); } } catch (Exception ex) { _logger.LogError(0, ex, "Booking rooms failed for tenant {tenant} and room {roomId}", tenant, bookingId); return(View("TenantError", tenant)); } return(RedirectToAction("Index", "Bookings", new { tenant })); }
public void AddBookingTest() { var ticketModel = new BookingModel { BookingId = 2, RoomId = 4, BookingPurchaseId = 50, HotelName = "Novatel", RoomName = "A506", GuestId = 100, Checkin_Date = DateTime.Now, Checkout_Date = DateTime.Now.AddDays(3), GuestName = "Pramati" }; List <BookingModel> bookingModels = new List <BookingModel>(); bookingModels.Add(ticketModel); var result = _tenantRepository.AddBookings(bookingModels, _tenantId).Result; Assert.True(result); }