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; }
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); }
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)); }
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)); }
public async Task PurchaseItinerary([FromBody] CartPersistenceModel cart, DateTimeOffset purchasedOn, CancellationToken cancellationToken) { await _fulfillmentService.Purchase(cart, purchasedOn, cancellationToken); }
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)); }