コード例 #1
0
        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());
        }
コード例 #2
0
        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);
            }
        }