예제 #1
0
        public void Handle(POESESSIDChangedEvent message)
        {
            List <ExileTradeWebSocketSetting> tempSettings = null;

            TradeItems.Clear();
            WebSockets.Clear();

            if (_exileWebSocketManager != null)
            {
                _exileWebSocketManager.OnLogMessageEvent            -= OnLogMessage;
                _exileWebSocketManager.OnNewIdRecievedEvent         -= OnNewIdRecieved;
                _exileWebSocketManager.OnWebSocketConnectedEvent    -= OnWebSocketConnected;
                _exileWebSocketManager.OnWebSocketDisconnectedEvent -= OnWebSocketDisconnected;
                tempSettings = _exileWebSocketManager.Settings();
                _exileWebSocketManager.Dispose();
                _exileWebSocketManager = null;
            }

            if (!string.IsNullOrWhiteSpace(message.NewValue))
            {
                IsEnabled = true;

                _exileWebSocketManager = new ExileTradeWebSocketManager(19, message.NewValue, Settings.Default.UserAgent);
                _exileWebSocketManager.OnLogMessageEvent            += OnLogMessage;
                _exileWebSocketManager.OnNewIdRecievedEvent         += OnNewIdRecieved;
                _exileWebSocketManager.OnWebSocketConnectedEvent    += OnWebSocketConnected;
                _exileWebSocketManager.OnWebSocketDisconnectedEvent += OnWebSocketDisconnected;

                if (tempSettings != null)
                {
                    AddRange(tempSettings);
                }
                else if (File.Exists(SAVE_FILE))
                {
                    try
                    {
                        var des = JsonConvert.DeserializeObject <List <ExileTradeWebSocketSetting> >(File.ReadAllText(SAVE_FILE));
                        AddRange(des);
                    }
                    catch (JsonSerializationException)
                    {
                        // Ignore
                    }
                }
            }
            else
            {
                IsEnabled = false;
            }
        }
예제 #2
0
 public void ClearTradeItems()
 {
     TradeItems.Clear();
 }