示例#1
0
        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);
        }
示例#2
0
        /// <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);
        }