本文整理汇总了C#中Transaction.SetTransactionId方法的典型用法代码示例。如果您正苦于以下问题:C# Transaction.SetTransactionId方法的具体用法?C# Transaction.SetTransactionId怎么用?C# Transaction.SetTransactionId使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Transaction
的用法示例。
在下文中一共展示了Transaction.SetTransactionId方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CreateTransactionWithOptionalValues
public void CreateTransactionWithOptionalValues()
{
var productsReceived = new Product();
var productsSpent = new Product();
var transaction = new Transaction("shop", "weapon", productsReceived, productsSpent);
transaction.SetTransactionId("12345");
transaction.SetServer("local");
transaction.SetReceipt("123223----***5433");
transaction.SetReceiptSignature("receiptSignature");
transaction.SetTransactorId("abcde");
transaction.SetProductId("5678-4332");
CollectionAssert.AreEquivalent(new JSONObject() {
{ "eventName", "transaction" },
{ "eventParams", new JSONObject() {
{ "transactionName", "shop" },
{ "transactionType", "weapon" },
{ "productsReceived", new JSONObject() {} },
{ "productsSpent", new JSONObject() {} },
{ "transactionID", "12345" },
{ "transactionServer", "local" },
{ "transactionReceipt", "123223----***5433" },
{ "transactionReceiptSignature", "receiptSignature" },
{ "transactorID", "abcde" },
{ "productID", "5678-4332" }
}
}
}, transaction.AsDictionary());
}
示例2: RegisterTransaction
private void RegisterTransaction(Transaction transaction, MessageTypes messageType, long transactionId, OrderTypes type)
{
if (transactionId <= 0 || transactionId > uint.MaxValue)
throw new InvalidOperationException(LocalizedStrings.Str1700Params.Put(transactionId));
_transactions.Add(transactionId, transaction);
_requests.Enqueue(new LuaRequest
{
MessageType = messageType,
TransactionId = transactionId,
OrderType = type,
Value = transaction.SetTransactionId(transactionId).ToLuaString()
});
}
示例3: RegisterTransaction
/// <summary>
/// Зарегистрировать транзакцию.
/// </summary>
/// <param name="transaction">Транзакция.</param>
public void RegisterTransaction(Transaction transaction)
{
if (transaction == null)
throw new ArgumentNullException(nameof(transaction));
if (transaction.GetInstruction<long>(Transaction.TransactionId) != 0)
throw new ArgumentException();
var transactionId = transaction.TryGetTransactionId();
if (transactionId == 0)
transactionId = TransactionIdGenerator.GetNextId();
if (transactionId <= 0 || transactionId > uint.MaxValue)
throw new InvalidOperationException(LocalizedStrings.Str1700Params.Put(transactionId));
FormatTransaction.SafeInvoke(transaction.SetTransactionId(transactionId));
_transactions.Add(transactionId, transaction);
if (IsAsyncMode)
Api.SendAsyncTransaction(transaction.ToString());
else
{
Exception error = null;
// http://stocksharp.com/forum/yaf_postst2247_Oshibka-pri-kotirovanii--sinkhronnyie-tranzaktsii.aspx
var execution = transaction.Message.ToExecutionMessage();
if (execution == null)
throw new ArgumentException(LocalizedStrings.Str1835, nameof(transaction));
var isReRegistering = transaction.TransactionType == TransactionTypes.ReRegister;
var isRegistering = transaction.TransactionType == TransactionTypes.Register || isReRegistering;
var apiMessage = "";
try
{
long orderId;
uint transId;
OrderStatus status;
var transactionTxt = transaction.ToString();
Api.SendSyncTransaction(transactionTxt, out status, out transId, out orderId, out apiMessage);
var isMatchOrCancel = (transaction.Message.Type == MessageTypes.OrderRegister || transaction.Message.Type == MessageTypes.OrderReplace)
&& ((OrderRegisterMessage)transaction.Message).TimeInForce == TimeInForce.MatchOrCancel;
if ((!isMatchOrCancel && status != OrderStatus.Accepted) || (isMatchOrCancel && !TransactionHelper.IfFOKCancelMessage(apiMessage) && orderId == 0))
throw new InvalidOperationException(LocalizedStrings.Str1836Params.Put(transactionTxt, apiMessage));
execution.OrderStatus = status;
execution.SystemComment = apiMessage;
if (isRegistering)
ProcessTransactionReply(execution, transaction, orderId, apiMessage, Codes.Success, null);
}
catch (Exception ex)
{
var apiEx = ex as ApiException;
if (isRegistering)
ProcessTransactionReply(execution, transaction, 0, apiMessage, apiEx != null ? apiEx.Code : Codes.Failed, ex);
else
{
execution.OrderState = OrderStates.Failed;
execution.Error = apiEx ?? new ApiException(Codes.Failed, apiMessage);
SendOutMessage(execution);
}
error = ex;
}
if (error != null)
error.Throw();
}
}