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); }
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)); }
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)); }
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); })); }
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)); }