コード例 #1
0
ファイル: Order.cs プロジェクト: vslee/ExchangeSharp
            public ExchangeOrderResult ToExchangeOrderResult(Dictionary <string, long> symbolToIdMapping)
            {
                ExchangeAPIOrderResult orderResult;

                switch (OrderState.ToLowerInvariant())
                {
                case "unknown":
                    orderResult = ExchangeAPIOrderResult.Unknown;
                    break;

                case "working":
                    orderResult = ExchangeAPIOrderResult.Open;
                    break;

                case "rejected":
                    orderResult = ExchangeAPIOrderResult.Rejected;
                    break;

                case "canceled":
                    orderResult = ExchangeAPIOrderResult.Canceled;
                    break;

                case "expired":
                    orderResult = ExchangeAPIOrderResult.Canceled;
                    break;

                case "fullyexecuted":
                    orderResult = ExchangeAPIOrderResult.Filled;
                    break;

                default:
                    throw new NotImplementedException($"Unexpected status type: {OrderState.ToLowerInvariant()}");
                }
                ;
                var symbol = symbolToIdMapping.Where(pair => pair.Value.Equals(Instrument));

                return(new ExchangeOrderResult()
                {
                    Amount = Quantity,
                    IsBuy = Side.Equals("buy", StringComparison.InvariantCultureIgnoreCase),
                    MarketSymbol = symbol.Any() ? symbol.First().Key : null,
                    Price = Price,
                    Result = orderResult,
                    OrderDate = ReceiveTime.UnixTimeStampToDateTimeMilliseconds(),

                    OrderId = OrderId.ToStringInvariant(),
                });
            }