当前位置: 首页>>代码示例>>C#>>正文


C# Transaction.SetTransactionId方法代码示例

本文整理汇总了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());
        }
开发者ID:deltaDNA,项目名称:unity-sdk,代码行数:30,代码来源:TransactionTest.cs

示例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()
			});
		}
开发者ID:vikewoods,项目名称:StockSharp,代码行数:15,代码来源:LuaFixServer.cs

示例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();
			}
		}
开发者ID:vikewoods,项目名称:StockSharp,代码行数:84,代码来源:QuikTrans2QuikAdapter.cs


注:本文中的Transaction.SetTransactionId方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。