public void UserChangedChannelWithoutRequesting() { var changeInfo = new ChannelChangeInfo (1, 2, 1); var msg = new UserChangedChannelMessage { ChangeInfo = changeInfo }; Assert.AreEqual (changeInfo.TargetUserId, msg.ChangeInfo.TargetUserId); Assert.AreEqual (changeInfo.TargetChannelId, msg.ChangeInfo.TargetChannelId); Assert.AreEqual (changeInfo.PreviousChannelId, msg.ChangeInfo.PreviousChannelId); Assert.AreEqual (changeInfo.RequestingUserId, msg.ChangeInfo.RequestingUserId); msg.WritePayload (serverContext, writer); long length = stream.Position; stream.Position = 0; msg = new UserChangedChannelMessage(); msg.ReadPayload (clientContext, reader); Assert.AreEqual (length, stream.Position); Assert.AreEqual (changeInfo.TargetUserId, msg.ChangeInfo.TargetUserId); Assert.AreEqual (changeInfo.TargetChannelId, msg.ChangeInfo.TargetChannelId); Assert.AreEqual (changeInfo.PreviousChannelId, msg.ChangeInfo.PreviousChannelId); Assert.AreEqual (changeInfo.RequestingUserId, msg.ChangeInfo.RequestingUserId); }
public override void ReadPayload(ISerializationContext context, IValueReader reader) { this.ChangeInfo = new ChannelChangeInfo(context, reader); }
public ReceivedChannelChannelResultEventArgs(ChannelChangeInfo moveInfo, ChannelChangeResult result) { if (moveInfo == null) throw new ArgumentNullException ("moveInfo"); this.MoveInfo = moveInfo; this.Result = result; }
public ChannelChangeResultMessage(ChannelChangeResult result, ChannelChangeInfo moveInfo) : this() { this.Result = result; this.MoveInfo = moveInfo; }
public override void ReadPayload(ISerializationContext context, IValueReader reader) { this.Result = (ChannelChangeResult)reader.ReadByte(); this.MoveInfo = new ChannelChangeInfo(context, reader); }
public override void ReadPayload(ISerializationContext context, IValueReader reader) { this.ChangeInfo = new ChannelChangeInfo (context, reader); }
public void Move (IUserInfo user, IChannelInfo channel) { if (user == null) throw new ArgumentNullException ("user"); if (channel == null) throw new ArgumentNullException ("channel"); int previousChannel = user.CurrentChannelId; if (previousChannel == channel.ChannelId) return; IUserInfo realUser = this[user.UserId]; if (realUser == null) return; IChannelInfo realChannel = context.Channels[channel.ChannelId]; if (realChannel == null) return; var changeInfo = new ChannelChangeInfo (user.UserId, channel.ChannelId, previousChannel); int numUsers = context.Users.Count (u => u.CurrentChannelId == channel.ChannelId); if (channel.UserLimit != 0 && numUsers >= channel.UserLimit) return; Manager.Move (realUser, realChannel); foreach (var connection in Manager.GetConnections()) connection.SendAsync (new UserChangedChannelMessage { ChangeInfo = changeInfo }); }