public Queue (int id, string name, User creatingUser, string restrictToGroup) { this.Id = id; this.Name = name; this.Status = QueueStatus.Waiting; this.members.Add(creatingUser); this.RestrictToGroup = restrictToGroup; }
public void RemoveUser(User user) { lock (lockable) { if (members.Contains(user)) { members.Remove(user); MembershipChanged(); } } }
public void AddUser(User name) { lock (lockable) { if (!members.Contains(name)) { members.Add(name); MembershipChanged(); } } }
internal void AddMessage(User sender, string message) { lock (lockable) { var msg = new Message() { Sender = sender, Content = message }; messages.Add(msg); if (QueueMessageSent != null) { QueueMessageSent(this, new QueueMessageEventArgs(this, msg)); } } }
public Queue CreateQueue(string queueName, string restrictToGroup, User creatingUser) { lock (lockable) { if (queues.Any(q => q.Value.Name.Equals(queueName, StringComparison.InvariantCultureIgnoreCase))) { throw new DuplicateQueueException(); } var queue = new Queue(++lastQueueId, queueName, creatingUser, restrictToGroup); queues.Add(queue.Id, queue); if (queueCreated != null) { queueCreated(this, new QueueEventArgs(queue)); } return queue; } }