private void Closing() { TXmlConnector.SendNewQuotes -= XmlConnector_OnSendNewQuotes; TXmlConnector.SendNewAllTrades -= XmlConnector_OnSendNewTrades; var atsub = new Security { Board = Board, Seccode = Seccode }; AllTradesSubs.Remove(atsub); if (!AllTradesSubs.Contains(atsub)) { ConnectorCommands.SubUnsubCommand("unsubscribe", "alltrades", Board, Seccode); } UnsubscribeFromWindowEvents(); CloseWindow(); GC.Collect(); }
public LogBookViewModel(string board, string seccode, Window window, int id = 0) { Window = window; ClosingCommand = new Command(arg => Closing()); ResetCommand = new Command(arg => Reset()); Board = board; Seccode = seccode; _level2Items = Level2DataHandler.AddLevel2Subscribtion(Board, Seccode); TXmlConnector.SendNewQuotes += XmlConnector_OnSendNewQuotes; Level2Subs.Add(new Security { Board = Board, Seccode = Seccode }); TXmlConnector.ConnectorSendCommand( ConnectorCommands.SubUnsubCommand("subscribe", "alltrades", Board, Seccode)); TXmlConnector.SendNewAllTrades += XmlConnector_OnSendNewTrades; AllTradesSubs.Add(new Security { Board = Board, Seccode = Seccode }); Id = id; if (Id == 0) { SaveWindow(); } SubscribeToWindowEvents(); var args = GetWindowArgs() as LogBookArgs; if (args == null) { UpdateWindowArgs(new LogBookArgs { Alert = false, Ratio = 2, Size = 1, TriggerDelta = 0.5 }); return; } Coef = args.Ratio; Size = args.Size; IsAlerting = args.Alert; TriggerDelta = args.TriggerDelta; }