public async Task MarkAsReceivedAsync(SubscriptionUpdate update, CancellationToken cancellationToken) { await _table.CreateIfNotExistsAsync(null, null, cancellationToken); var model = new ReceivedSubscriptionModel(update); await _table.ExecuteAsync(TableOperation.InsertOrReplace(model), null, null, cancellationToken); }
/// <summary> /// Checks if a specific update has been received previousl.y /// </summary> /// <returns>True if already received</returns> private async Task <bool> HasPreviouslyBeenReceivedAsync(SubscriptionUpdate s, CancellationToken cancellationToken) { await _table.CreateIfNotExistsAsync(null, null, cancellationToken); var model = new ReceivedSubscriptionModel(s); var partitionMatch = TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, model.PartitionKey); var rowMatch = TableQuery.GenerateFilterCondition("RowKey", QueryComparisons.Equal, model.RowKey); var pointQuery = TableQuery.CombineFilters(partitionMatch, TableOperators.And, rowMatch); var tableQuery = new TableQuery <ReceivedSubscriptionModel> { FilterString = pointQuery }; var tableQueryResult = await _table.ExecuteQuerySegmentedAsync(tableQuery, null, null, null, cancellationToken); return(tableQueryResult.Results.Count > 0); }