public void StateUpdateEvent() { var passiv = new UserControl_Passive(); var write = new UserControl_Write(); SocketService.MySocket.Off("state update"); SocketService.MySocket.On("state update", (data) => { Console.WriteLine(data); StateUpdate_Model d = JsonConvert.DeserializeObject <StateUpdate_Model>(data.ToString()); if (d.role == "WRITE" && d.answer != null) { this._homePageView.Dispatcher.Invoke(() => { if (d.clear) { lastState = "WRITE"; this._homePageView.MiddleView.Children.Clear(); write = new UserControl_Write(d, this); this._homePageView.MiddleView.Children.Add(write); } }); } else if (d.role == "GUESS" && d.answer == null) { this._homePageView.Dispatcher.Invoke(() => { if (d.clear) { lastState = "GUESS"; this._homePageView.MiddleView.Children.Clear(); guess = new UserControl_Guess(d, this); this._homePageView.MiddleView.Children.Add(guess); } else { if (lastState == "PASSIVE") { this._homePageView.MiddleView.Children.Remove(passiv); passiv.switchState(d); this._homePageView.MiddleView.Children.Add(new UserControl_Guess(passiv)); } else { if (d.attemptsLeft.ToString() == "-1") { guess.PassivViewGuess.BarInfoPassive.Answer.Content = "Tentatives : " + "Infinies"; } else { guess.PassivViewGuess.BarInfoPassive.Answer.Content = "Tentatives : " + d.attemptsLeft.ToString(); } } } }); } else if (d.role == "PASSIVE" && d.answer == null) { this._homePageView.Dispatcher.Invoke(() => { if (d.clear) { lastState = "PASSIVE"; this._homePageView.MiddleView.Children.Clear(); passiv = new UserControl_Passive(d, this); this._homePageView.MiddleView.Children.Add(passiv); } else { if (lastState == "WRITE") { write.switchState(d); } else if (lastState == "GUESS") { guess.SwitchToPassive(d); } else { passiv.BarInfoPassive.switchtoPassiv(d); } } }); } }); }