Beispiel #1
0
        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;
        }
Beispiel #2
0
        public async Task <DeleteItemResult> DeleteItemAsync(DeleteItemRequest request)
        {
            var httpRequest = Setup("DeleteItem", request.ToJson());

            var json = await SendAndReadJsonElementAsync(httpRequest).ConfigureAwait(false);

            return(DeleteItemResult.FromJsonElement(json));
        }
Beispiel #3
0
        public Task <DeleteItemResult> DeleteAsync(Key <T> key, ReturnValues returnValues)
        {
            var request = new DeleteItemRequest(tableName, key)
            {
                ReturnValues = returnValues
            };

            return(InternalDelete(request));
        }
Beispiel #4
0
        public Task <DeleteItemResult> DeleteAsync(T record)
        {
            var request = new DeleteItemRequest(
                tableName: tableName,
                key: Key <T> .FromObject(record)
                );

            return(InternalDelete(request));
        }
Beispiel #5
0
        /*
         * 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));
        }
Beispiel #6
0
        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));
        }
Beispiel #7
0
        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));
        }
Beispiel #8
0
        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));
        }
Beispiel #9
0
        public Task <DeleteItemResult> DeleteAsync(TKey key)
        {
            var request = new DeleteItemRequest(tableName, key: Key <T> .FromTuple(key));

            return(InternalDelete(request));
        }