public async Task <GenericReadModelResponse <BookingVoucherModel> > GetVoucherAsync(string bookingId, string paxId)
        {
            var response = new GenericReadModelResponse <BookingVoucherModel>();
            var httpTask = _httpClient.GetAsync($"vouchers/{bookingId}/{paxId}");

            var apiResult = await SendApiRequest <BookingVoucherModel>(response, httpTask);

            if (response.IsError())
            {
                return(response);
            }

            response.Model = apiResult;

            return(response);
        }
        public async Task <GenericReadModelResponse <ProductPriceModel> > GetProductPriceAsync(int productId, DateTime dateCheckIn)
        {
            var response = new GenericReadModelResponse <ProductPriceModel>();
            var httpTask = _httpClient.PostAsync($"productpricing/{productId}?dateCheckIn={dateCheckIn.ToString("s")}", null);

            var apiResult = await SendApiRequest <ProductPriceModel>(response, httpTask);

            if (response.IsError())
            {
                return(response);
            }

            response.Model = apiResult;

            return(response);
        }
        public async Task <GenericReadModelResponse <string> > FinalizeBookingAsync(string bookingId)
        {
            var response = new GenericReadModelResponse <string>();
            var httpTask = _httpClient.GetAsync($"bookingfinalise/{bookingId}");

            var apiResult = await SendApiRequest <string>(response, httpTask);

            if (response.IsError())
            {
                return(response);
            }

            response.Model = apiResult;

            return(response);
        }
        public async Task <GenericReadModelResponse <BookingModel> > CreateBookingAsync(CreateBookingRequest createBookingRequest)
        {
            var response        = new GenericReadModelResponse <BookingModel>();
            var JsonBodyContent = JsonConvert.SerializeObject(createBookingRequest);
            var httpContent     = new StringContent(JsonBodyContent, Encoding.UTF8, "application/json");
            var httpTask        = _httpClient.PostAsync("bookings", httpContent);

            var apiResult = await SendApiRequest <BookingModel>(response, httpTask);

            if (response.IsError())
            {
                return(response);
            }

            response.Model = apiResult;

            return(response);
        }