Created
June 16, 2022 20:52
-
-
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
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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