public Booking Retrieve(RetrieveBookingRequest request)
        {
            var booking = this._distributedCache.Get <Booking>($"ConfirmedBooking_{request.RecordLocator}");

            if (booking == null ||
                (booking.Contacts.All(contact =>
                                      !contact.Channels.Any(channel =>
                                                            channel.Type == ChannelType.Email && channel.Info == request.ContactEmail)) &&
                 booking.Pax.All(pax =>
                                 pax.Name.Last != request.PaxSurname)))
            {
                throw new BookingNotFoundException();
            }

            this._sessionStorage.Add("DomainBooking", booking);
            this._sessionStorage.Add("DomainPayments", booking.Payments);
            this._sessionStorage.Add("DomainContacts", booking.Contacts);
            this._sessionStorage.Add("DomainServices", booking.Services);

            return(booking);
        }
 public async Task <IActionResult> Get([FromRoute] RetrieveBookingRequest retrieveBookingRequest)
 {
     return(new OkObjectResult(await _bookingService.RetrieveBooking(retrieveBookingRequest)));
 }