private static async Task <TableResult> HandleReadAsync(TableOperation operation, CloudTableClient client, CloudTable table, TableRequestOptions options, OperationContext context, CancellationToken cancellationToken) { try { if (operation.IsTableEntity) { return(EntityHelpers.GetTableResultFromResponse(await DocumentCollectionBaseHelpers.HandleDocumentCollectionRetrieveAsync(operation.GetCosmosTableName(), client.DocumentClient), context)); } RequestOptions requestOptions = GetRequestOptions(operation, options); ResourceResponse <Document> resourceResponse = await DocumentEntityCollectionBaseHelpers.HandleEntityRetrieveAsync(table.Name, operation.PartitionKey, operation.RowKey, client.DocumentClient, requestOptions, cancellationToken); return(GetTableResultFromResponse(operation, resourceResponse, context, options, operation.SelectColumns, resourceResponse.SessionToken)); } catch (DocumentClientException ex) { if (ex.StatusCode == HttpStatusCode.NotFound) { return(new TableResult { HttpStatusCode = 404, RequestCharge = ex.RequestCharge }); } throw; } }