internal LoggedOutEventArgs(LogoutReason reason, ConnectionErrorException connectionError) { Reason = reason; ConnectionError = connectionError; }
void LogoutInner(LogoutReason reason, ConnectionErrorException connectionError) { if (!IsLoggedIn) return; connection.Error -= connection_Error; commandsDisposable.Dispose(); connection.Close(); reader = null; writer = null; connection = null; responseTracker = null; var statusChangeEvents = new List<UserStatusEventArgs>(); foreach (User user in UserLists.ForwardList.Users.Where(u => u.Status != UserStatus.Offline)) { UserStatus prevStatus = user.Status; user.Status = UserStatus.Offline; statusChangeEvents.Add(new UserStatusEventArgs(user, UserStatus.Offline, prevStatus, false)); } IsLoggedIn = false; OnLoggedOut(new LoggedOutEventArgs(reason, connectionError)); foreach (UserStatusEventArgs e in statusChangeEvents) OnUserStatusChanged(e); }
internal ConnectionErrorEventArgs(ConnectionErrorException exception) { Exception = exception; }