void OnKick(object sender, KickEventArgs e) { if (e.Whom == client.Nickname) { Disconnect(); connectionStatus = ChatConnectionStatus.Error; AddNotification("You were kicked from the chat by {0}. ({1})".F(e.Who, e.KickReason)); } else { Users.Remove(e.Whom); AddNotification("{0} was kicked from the chat by {1}. ({2})".F(e.Whom, e.Who, e.KickReason)); } }
void OnNickChange(object sender, NickChangeEventArgs e) { AddNotification("{0} is now known as {1}.".F(e.OldNickname, e.NewNickname)); Game.RunAfterTick(() => { ChatUser user; if (!Users.TryGetValue(e.OldNickname, out user)) { return; } Users.Remove(e.OldNickname); Users.Add(e.NewNickname, new ChatUser(e.NewNickname, user.IsOp, user.IsVoiced)); }); }
public void SourceManipulationSorted() { var numbers = new ObservableSortedDictionary <int, int>(Enumerable.Range(0, 10).ToDictionary(i => i)); using var query = numbers.ActiveValueForOrDefault(9); Assert.IsNull(query.OperationFault); Assert.AreEqual(9, query.Value); numbers.Remove(9); Assert.IsNull(query.OperationFault); Assert.AreEqual(0, query.Value); numbers.Add(9, 30); Assert.IsNull(query.OperationFault); Assert.AreEqual(30, query.Value); numbers[9] = 15; Assert.IsNull(query.OperationFault); Assert.AreEqual(15, query.Value); }