Smuxi.Engine.XmppProtocolManager.OpenContactChat C# (CSharp) Method

OpenContactChat() private method

private OpenContactChat ( ) : void
return void
        public void OpenContactChat()
        {
            if (ContactChat == null) {
                ContactChat = Session.CreateChat<GroupChatModel>(
                    "Contacts", "Contacts", this
                );
                Session.AddChat(ContactChat);
            } else if (!ContactChat.IsEnabled) {
                Session.EnableChat(ContactChat);
            } else {
                // already open
                return;
            }

            foreach (var pair in Contacts) {
                if (pair.Value.Resources.Count != 0) {
                    ContactChat.UnsafePersons.Add(pair.Key, pair.Value.ToPersonModel());
                }
            }

            // HACK: lower probability of sync race condition during connect
            ThreadPool.QueueUserWorkItem(delegate {
                Thread.Sleep(5000);
                lock (this) {
                    if (IsDisposed) {
                        return;
                    }
                    if (ContactChat != null) {
                        Session.SyncChat(ContactChat);
                    }
                }
            });
        }