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); }
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)); }