void ProcessStatus(TradeWebResponse response) { var trade_status = response.trade_status; switch (trade_status) { case 0: // Trade is ongoing. Status = ETradeTransactionStatus.InProgress; break; case 1: ulong tradeId; ulong.TryParse(response.tradeid, out tradeId); FinishTrade(ETradeTransactionStatus.Finished, (e) => e.tradeId = tradeId); break; case 3: FinishTrade(ETradeTransactionStatus.Cancelled); break; case 4: FinishTrade(ETradeTransactionStatus.TimedOut); break; default: Console.WriteLine("Unknown trade status: " + trade_status); break; } }
void FinishTrade(ETradeTransactionStatus status, Action <TradeEvent> eventCallback = null) { CancelTimer(); Status = status; var @event = new TradeEvent(); @event.type = ETradeEventType.Finished; if (eventCallback != null) { eventCallback(@event); } Events.Enqueue(@event); }
void FinishTrade(ETradeTransactionStatus status, Action<TradeEvent> eventCallback = null) { CancelTimer(); Status = status; var @event = new TradeEvent(); @event.type = ETradeEventType.Finished; if (eventCallback != null) eventCallback(@event); Events.Enqueue(@event); }