Skip to content

Instantly share code, notes, and snippets.

@DanSmith
Created June 16, 2022 20:52
Show Gist options
  • Save DanSmith/8df7d0165b4d5a6b305dbbffed5c3b1b to your computer and use it in GitHub Desktop.
Save DanSmith/8df7d0165b4d5a6b305dbbffed5c3b1b to your computer and use it in GitHub Desktop.
Attach a variable scheme to an instrument using a custom field, and register only the instrument in a transaction
var client = new RestRepositoryClient(info);
VersionableBase.DefaultAgencyId = "int.example";
MultilingualString.CurrentCulture = "en";
var instrument = new Instrument();
var varset = new VariableScheme();
var customField = new CustomField();
customField.RelatedItemIdValue = new TypedIdTriple(varset.CompositeId, DdiItemType.VariableScheme);
customField.ValueType = CustomFieldType.Relationship;
customField.Title.Current = "variables";
instrument.CustomFields.Add(customField);
var transaction = await client.CreateTransactionAsync();
RepositoryTransactionAddItemsRequest addItemsRequest = new RepositoryTransactionAddItemsRequest();
addItemsRequest.TransactionId = transaction.TransactionId;
var item = VersionableToRepositoryItem(instrument);
addItemsRequest.Items.Add(item);
transaction = await client.AddItemsToTransactionAsync(addItemsRequest);
RepositoryTransactionCommitOptions options = new RepositoryTransactionCommitOptions();
options.TransactionId = transaction.TransactionId;
options.TransactionType = RepositoryTransactionType.CommitAsLatestAndPropagateVersions;
var result = await client.CommitTransactionAsync(options);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment