private async Task <DeleteItemResult> InternalDelete(DeleteItemRequest request) { var retryCount = 0; Exception lastError = null; // TODO: Move retry logic to client... do { try { return(await client.DeleteItem(request).ConfigureAwait(false)); } catch (DynamoDbException ex) when(ex.IsTransient) { lastError = ex; } retryCount++; await Task.Delay(retryPolicy.GetDelay(retryCount)).ConfigureAwait(false); }while (retryPolicy.ShouldRetry(retryCount)); throw lastError; }
public async Task <DeleteItemResult> DeleteItemAsync(DeleteItemRequest request) { var httpRequest = Setup("DeleteItem", request.ToJson()); var json = await SendAndReadJsonElementAsync(httpRequest).ConfigureAwait(false); return(DeleteItemResult.FromJsonElement(json)); }
public Task <DeleteItemResult> DeleteAsync(Key <T> key, ReturnValues returnValues) { var request = new DeleteItemRequest(tableName, key) { ReturnValues = returnValues }; return(InternalDelete(request)); }
public Task <DeleteItemResult> DeleteAsync(T record) { var request = new DeleteItemRequest( tableName: tableName, key: Key <T> .FromObject(record) ); return(InternalDelete(request)); }
/* * public void CreateTable() * { * throw new NotImplementedException(); * } */ public async Task <DeleteItemResult> DeleteItemAsync(DeleteItemRequest request) { var httpRequest = Setup("DeleteItem", request.ToJson()); var responseText = await SendAsync(httpRequest).ConfigureAwait(false); var responseJson = JsonObject.Parse(responseText); return(DeleteItemResult.FromJson(responseJson)); }
public Task <DeleteItemResult> DeleteAsync(Key <T> key, Expression[] conditions, ReturnValues returnValues) { var request = new DeleteItemRequest(tableName, key) { ReturnValues = returnValues }; if (conditions.Length > 0) { request.SetConditions(conditions); } return(InternalDelete(request)); }
public Task <DeleteItemResult> DeleteAsync(T record) { if (record is null) { throw new ArgumentNullException(nameof(record)); } var request = new DeleteItemRequest( tableName: tableName, key: Key <T> .FromObject(record) ); return(InternalDelete(request)); }
public Task <DeleteItemResult> DeleteAsync(Key <T> key, Expression[] conditions, ReturnValues returnValues) { #region Preconditions if (conditions == null) { throw new ArgumentNullException(nameof(conditions)); } #endregion var request = new DeleteItemRequest(tableName, key) { ReturnValues = returnValues }; if (conditions.Length > 0) { request.SetConditions(conditions); } return(InternalDelete(request)); }
public Task <DeleteItemResult> DeleteAsync(TKey key) { var request = new DeleteItemRequest(tableName, key: Key <T> .FromTuple(key)); return(InternalDelete(request)); }