Пример #1
0
        public async Task <Accommodation> FindAccommodationAsync(Guid accommodationId)
        {
            var result = await partitionClientFactory.CreatePartitionClient().InvokeWithRetryAsync(async client =>
            {
                var api = await client.CreateApiClient();
                return(await api.FindAccommodationWithHttpMessagesAsync(accommodationId));
            });

            return(result.Response.StatusCode == System.Net.HttpStatusCode.OK ? mapper.MapFrom(result.Body) : null);
        }
Пример #2
0
        public async Task <List <Contracts.Models.Facility> > ListAsync()
        {
            var result = await partitionClientFactory.CreatePartitionClient().InvokeWithRetryAsync(async client =>
            {
                var api = await client.CreateApiClient();
                return(await api.ListFacilitiesWithHttpMessagesAsync());
            });

            return(mapper.MapFrom(result.Body));
        }
Пример #3
0
        public async Task <FileAccessToken> IssueAccommodationImageUploadTokenAsync(int accommodationId, string originalFileName)
        {
            var result = await partitionClientFactory.CreatePartitionClient().InvokeWithRetryAsync(async client =>
            {
                var api = await client.CreateApiClient();
                return(await api.GetAccommodationImageUploadTokenWithHttpMessagesAsync(accommodationId, originalFileName));
            });

            if (result.Response.StatusCode == HttpStatusCode.NotFound)
            {
                throw new AccommodationNotFoundException(accommodationId);
            }

            return(mapper.MapFrom(result.Body));
        }
        public async Task <List <Accommodation> > ListAsync(Guid facilityId)
        {
            var result = await partitionClientFactory.CreatePartitionClient().InvokeWithRetryAsync(async client =>
            {
                var api = await client.CreateApiClient();
                return(await api.ListAccommodationsWithHttpMessagesAsync(facilityId));
            });

            if (result.Response.StatusCode == HttpStatusCode.NotFound)
            {
                throw new FacilityNotFoundException(facilityId);
            }

            return(mapper.MapFrom(result.Body));
        }
Пример #5
0
        public async Task BookAsync(string userId, int accommodationId, BookingDetails details)
        {
            var data = mapper.MapFrom(details);

            var result = await partitionClientFactory.CreatePartitionClient(new ServicePartitionKey(userId.ToPartitionKey())).InvokeWithRetryAsync(async client =>
            {
                var api = await client.CreateApiClient();
                return(await api.CreateBookingWithHttpMessagesAsync(accommodationId, data));
            });

            if (result.Response.StatusCode == HttpStatusCode.NotFound)
            {
                throw new AccommodationNotFoundException(accommodationId);
            }
        }
 public async Task <HttpOperationResponse <string> > CreateApiClient(Func <IPaymentServiceApiClient, Task <HttpOperationResponse <string> > > invoke)
 {
     return(await partitionClientFactory.CreatePartitionClient(new ServicePartitionKey(/*partitionKey*/)).InvokeWithRetryAsync(async client =>
     {
         var api = await client.CreateApiClient();
         return await invoke(api);
     }));
 }
Пример #7
0
        public async Task <IList <SearchResult> > SearchAsync(string searchText, int page)
        {
            var result = await partitionClientFactory.CreatePartitionClient().InvokeWithRetryAsync(async client =>
            {
                var api = await client.CreateApiClient();
                return(await api.SearchWithHttpMessagesAsync(page, searchText));
            });

            return(mapper.MapFrom(result.Body));
        }