private void OnConnectionStateChanged(object sender, ConnectionStateChangedEventArgs e) { string userState = e.IsConnected ? "connected." : "disconnected."; string message = $"{e.Username} {userState}."; if (e.IsConnected) { var messageHistory = _requestHander.GetGroupMessages(e.Username); var users = _requestHander.GetUsers(); var groups = _requestHander.GetGroups(e.Username); _wsServer.Send(String.Empty, e.Username, new MessageHistoryResponse(messageHistory).GetContainer()); _wsServer.Send(String.Empty, e.Username, new UserListResponse(users).GetContainer()); _wsServer.Send(String.Empty, e.Username, new GroupListResponse(groups).GetContainer()); } _requestHander.AddEvent(EventType.Event, message, e.Date); Console.WriteLine($"{DateTime.Now} - {message}"); _wsServer.Send(e.Username, String.Empty, new MessageBroadcast(e.Username, String.Empty, userState, String.Empty, DateTime.Now).GetContainer()); }