public ViewResult Checkout(Payment payment) { if (payment != null) { var isAdded = IPaymentService.AddPayment(payment); List <Reservation> reservations = new List <Reservation>(); var reservationCart = GetCart(); var numberOfReservationRooms = reservationCart.Lines.Count(); for (int i = 0; i < numberOfReservationRooms; i++) { foreach (var r in reservationCart.Lines) { if (User.Identity.IsAuthenticated == false) { Reservation res = new Reservation() { HotelId = r.Room.RoomType.HotelId, UserId = 1, RoomId = r.Room.Id, ChkIn = r.ChkIn, ChkOut = r.ChkOut, StatusId = 3, PaymentId = payment.Id }; reservations.Add(res); } else { var g = _userManager.GetUserName(HttpContext.User); var user = IUserService.GetUserByName(g); Reservation res = new Reservation() { HotelId = r.Room.RoomType.HotelId, User = user, Room = IRoomService.GetRoom(r.Room.Id), ChkIn = r.ChkIn, ChkOut = r.ChkOut, StatusId = 3, PaymentId = payment.Id }; reservations.Add(res); } } } var isCorrect = IReservationService.AddReservations(reservations); if (isCorrect == true) { TransactionCompleteVM vm = new TransactionCompleteVM() { booked = reservations, paid = payment }; Cart cart = GetCart(); cart.Clear(); return(View("Complete", vm)); } } return(View()); }
private async Task ProcessReservationsAsync() { using var scope = _serviceScopeFactory.CreateScope(); _apaleoClient = scope.ServiceProvider.GetRequiredService <IApaleoClient>(); _reservationService = scope.ServiceProvider.GetRequiredService <IReservationService>(); var authenticatedClient = await _apaleoClient.AuthenticateClient(); var mostRecentReservationProcess = await _reservationService.GetMostRecentReservationProcess(); if (mostRecentReservationProcess >= DateTime.Now.AddDays(-1)) { return; } var recentReservations = (await _apaleoClient.GetReservationsFromDate(authenticatedClient, mostRecentReservationProcess)).ToList(); if (recentReservations.Any()) { await _apaleoClient.AddFoliosToReservations(authenticatedClient, recentReservations); await _reservationService.AddReservations(recentReservations); } }