void Set(jab.Models.Room room) { this.Name = room.Name; this.Id = room.Name; this.Topic = room.Topic; this.Private = room.Private; recentMessages = new TaskCompletionSource<IEnumerable<ChannelMessage>>(); getChannelInfo = new TaskCompletionSource<Channel>(); }
internal void TriggerUsernameChanged (string oldUserName, jab.Models.User jabuser, bool isCurrentUser) { if (this.Name == oldUserName) { user.Name = jabuser.Name; user.Id = jabuser.Name; this.Name = user.Name; OnUsernameChanged (new UsernameChangedEventArgs (oldUserName, user, DateTimeOffset.Now)); OnNameChanged (EventArgs.Empty); var server = Server as JabbRServer; server.TriggerChannelInfoChanged (new ChannelEventArgs (this)); } else if (isCurrentUser) { OnUsernameChanged (new UsernameChangedEventArgs (oldUserName, Server.CurrentUser, DateTimeOffset.Now)); } }
void Set (jab.Models.Room room) { this.Name = room.Name; this.Id = room.Name; this.Topic = room.Topic; this.Private = room.Private; recentMessages = new TaskCompletionSource<IEnumerable<ChannelMessage>>(); getChannelInfo = new TaskCompletionSource<Channel>(); Server.Client.GetRoomInfo (this.Id).ContinueWith (task => { if (task.Exception != null) { getChannelInfo.SetException (task.Exception); recentMessages.SetException (task.Exception); } else { this.Topic = task.Result.Topic; this.Private = task.Result.Private; lock (users) { this.users.Clear (); foreach (var user in from r in task.Result.Users select new JabbRUser (r)) this.users.Add (user.Id, user); } lock (owners) { this.owners.Clear (); this.owners.AddRange (task.Result.Owners); } var messages = (from m in task.Result.RecentMessages select CreateMessage(m)); historyLoaded = true; if (firstMessage != null) { // filter up to the first already received message messages = messages.TakeWhile (r => r.When < firstMessage.When || (r.When == firstMessage.When && r.Content != firstMessage.Content)); firstMessage = null; } recentMessages.SetResult (messages); getChannelInfo.SetResult (this); } }); }
public JabbRRoom(JabbRServer server, jab.Models.Room room) : base(server) { Set(room); }
internal void TriggerUsernameChanged(string oldUserName, jab.Models.User jabuser) { var user = GetUser(oldUserName); if (user != null) { lock (users) { if (users.ContainsKey(oldUserName)) { users.Remove(oldUserName); user.Name = jabuser.Name; user.Id = jabuser.Name; users.Add(user.Id, user); } } OnUsernameChanged(new UsernameChangedEventArgs(oldUserName, user, DateTimeOffset.Now)); } }
internal void TriggerOwnerRemoved(jab.Models.User user) { if (this.owners.Contains(user.Name)) { bool removed = false; lock (owners) { if (this.owners.Contains(user.Name)) { owners.Remove(user.Name); removed = true; } } if (removed) OnOwnerRemoved(new UserEventArgs(new JabbRUser(this.Server, user), DateTimeOffset.Now)); } }
internal void TriggerOwnerAdded(jab.Models.User user) { if (!this.owners.Contains(user.Name)) { bool added = false; lock (owners) { if (!this.owners.Contains(user.Name)) { owners.Add(user.Name); added = true; } ; } if (added) OnOwnerAdded(new UserEventArgs(new JabbRUser(this.Server, user), DateTimeOffset.Now)); } }
public ChannelMessage CreateMessage(jab.Models.Message m) { var content = m.Content; if (!m.HtmlEncoded) content = ParseContent(content); var message = new ChannelMessage(m.Id, m.When, m.User.Name, content); message.DetectHighlights(Server.HighlightRegex); return message; }
public static ChannelMessage CreateMessage(jab.Models.Message m) { return new ChannelMessage (m.Id, m.When, m.User.Name, m.Content); }