Esempio n. 1
0
        public async Task <T> LoadFullCart <T>(CartPersistenceModel cart, CancellationToken cancellationToken) where T : CartModel, new()
        {
            T cartModel = new T()
            {
                CarReservationDuration   = cart.CarReservationDuration,
                HotelReservationDuration = cart.HotelReservationDuration
            };

            if (cart.DepartingFlight != 0)
            {
                cartModel.DepartingFlight = await _flightDataProvider.FindFlight(cart.DepartingFlight, cancellationToken);
            }

            if (cart.ReturningFlight != 0)
            {
                cartModel.ReturningFlight = await _flightDataProvider.FindFlight(cart.ReturningFlight, cancellationToken);
            }

            if (cart.HotelReservation != 0)
            {
                cartModel.HotelReservation = await _hotelDataProvider.FindHotel(cart.HotelReservation, cancellationToken);
            }

            if (cart.CarReservation != 0)
            {
                cartModel.CarReservation = await _carDataProvider.FindCar(cart.CarReservation, cancellationToken);
            }

            return(cartModel);
        }
 private async Task<CartPersistenceModel> UpdateAndPersist(string cartId, Action<CartPersistenceModel> updateMe, CancellationToken cancellationToken)
 {
     var docClient = await _getClientAndVerifyCollection;
     var cart = await GetCart(cartId, cancellationToken);
     if ( cart == null )
     {
         cart = new CartPersistenceModel() { Id = cartId };
     }
     updateMe(cart);
     await _cosmosDBProvider.Persist<CartPersistenceModel>(docClient, COLLECTIONNAME, cart, cancellationToken);
     return cart;
 }
Esempio n. 3
0
        public async Task <string> Purchase(CartPersistenceModel cart, System.DateTimeOffset PurchasedOn, CancellationToken cancellationToken)
        {
            ItineraryPersistenceModel itinerary = JsonConvert.DeserializeObject <ItineraryPersistenceModel>(JsonConvert.SerializeObject(cart));

            itinerary.PurchasedOn = PurchasedOn;

            for (int ii = 0; ii < 6; ii++)
            {
                itinerary.RecordLocator += SAFECHARACTERS[_random.Next(0, 21)];
            }

            await _itineraryDataProvider.UpsertItinerary(itinerary, cancellationToken);

            return(itinerary.RecordLocator);
        }
Esempio n. 4
0
        public async Task <CartPersistenceModel> UpsertCartHotel(string cartId, int hotelId, int numberOfDays, CancellationToken cancellationToken)
        {
            CartPersistenceModel cart;

            if (!_carts.TryGetValue(cartId, out cart))
            {
                cart = new CartPersistenceModel()
                {
                    Id = cartId
                };
            }

            cart.HotelReservation         = hotelId;
            cart.HotelReservationDuration = numberOfDays;
            _carts[cartId] = cart;

            return(await Task.FromResult(cart));
        }
Esempio n. 5
0
        public async Task <CartPersistenceModel> UpsertCartFlights(string cartId, int departingFlightId, int returningFlightId, CancellationToken cancellationToken)
        {
            CartPersistenceModel cart;

            if (!_carts.TryGetValue(cartId, out cart))
            {
                cart = new CartPersistenceModel()
                {
                    Id = cartId
                };
            }

            cart.DepartingFlight = departingFlightId;
            cart.ReturningFlight = returningFlightId;

            _carts[cartId] = cart;

            return(await Task.FromResult(cart));
        }
Esempio n. 6
0
 public async Task PurchaseItinerary([FromBody] CartPersistenceModel cart, DateTimeOffset purchasedOn, CancellationToken cancellationToken)
 {
     await _fulfillmentService.Purchase(cart, purchasedOn, cancellationToken);
 }
Esempio n. 7
0
        public async Task <string> Purchase(string cartId, System.DateTimeOffset PurchasedOn, CancellationToken cancellationToken)
        {
            CartPersistenceModel cart = await _cartDataProvider.GetCart(cartId, cancellationToken);

            return(await Purchase(cart, PurchasedOn, cancellationToken));
        }