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(), }); }