Ejemplo n.º 1
0
        private static TableOperation BuildLinkChangeTableOperation(
            CategoryGroup categoryGroup,
            string categoryName,
            CategoryLinkChange change)
        {
            var link = new CategoryLink
            {
                CategoryGroup = categoryGroup,
                CategoryName  = categoryName,
                ProfileId     = change.ProfileId
            };
            var            adapter = new CategoryLinkAdapter(link);
            TableOperation operation;

            if (change.ChangeType == CategoryLinkChangeType.Add)
            {
                operation = TableOperation.InsertOrReplace(adapter);
            }
            else
            {
                // We don't care about concurrency here because we are removing the item
                adapter.ETag = "*";

                operation = TableOperation.Delete(adapter);
            }
            return(operation);
        }
Ejemplo n.º 2
0
        public Task StoreCategoryLink(CategoryGroup categoryGroup, string categoryName, CategoryLinkChange change, CancellationToken cancellationToken)
        {
            Ensure.String.IsNotNullOrWhiteSpace(categoryName, nameof(categoryName));
            Ensure.Any.IsNotNull(change, nameof(change));

            var operation = BuildLinkChangeTableOperation(categoryGroup, categoryName, change);
            var table     = GetTable(TableName);

            return(ExecuteWithCreateTable(table, operation, cancellationToken));
        }