Ejemplo n.º 1
0
        protected Connection(IMBase client, string account, string password)
        {
            client.Account = account;
            client.Password = password;

            client.OnMessage += (sender, buddy, message) => { MessageReceived(this, new EventArgs<Message>(new Message(_contacts[buddy], message, DateTime.Now, true))); };
            client.OnOfflineMessage += (sender, buddy, message, receivedDateTime) => { MessageReceived(this, new EventArgs<Message>(new Message(_contacts[buddy], message, receivedDateTime, false))); };

            client.OnError += (sender, error) => { Error(this, new EventArgs<string>(error)); };
            client.OnLog += (sender, message) => { Log(this, new EventArgs<string>(message)); };

            client.OnBuddyStatusChanged += (sender, buddy) => { ContactStatusChanged(this, new EventArgs<IContact>(_contacts[buddy])); };

            client.OnReceiveBuddyList += delegate {
                _contacts.Clear();

                foreach (var buddy in client.BuddyList.Keys)
                    _contacts.Add((string) buddy, ContactFactory((string) buddy));

                ContactListReceived(this, new EventArgs<IEnumerable<IContact>>(Contacts));
            };

            client.OnAddBuddy += (sender, buddy) => {
                IContact contact = ContactFactory(buddy);
                _contacts.Add(buddy, contact);
                ContactAdded(this, new EventArgs<IContact>(contact));
            };

            client.OnDeleteBuddy += (sender, buddy) => {
                ContactRemoved(this, new EventArgs<IContact>(_contacts[buddy]));
                _contacts.Remove(buddy);
            };

            Client = client;
        }
Ejemplo n.º 2
0
        protected Connection(IMBase client, string account, string password)
        {
            client.Account  = account;
            client.Password = password;

            client.OnMessage        += (sender, buddy, message) => { MessageReceived(this, new EventArgs <Message>(new Message(_contacts[buddy], message, DateTime.Now, true))); };
            client.OnOfflineMessage += (sender, buddy, message, receivedDateTime) => { MessageReceived(this, new EventArgs <Message>(new Message(_contacts[buddy], message, receivedDateTime, false))); };

            client.OnError += (sender, error) => { Error(this, new EventArgs <string>(error)); };
            client.OnLog   += (sender, message) => { Log(this, new EventArgs <string>(message)); };

            client.OnBuddyStatusChanged += (sender, buddy) => { ContactStatusChanged(this, new EventArgs <IContact>(_contacts[buddy])); };

            client.OnReceiveBuddyList += delegate {
                _contacts.Clear();

                foreach (var buddy in client.BuddyList.Keys)
                {
                    _contacts.Add((string)buddy, ContactFactory((string)buddy));
                }

                ContactListReceived(this, new EventArgs <IEnumerable <IContact> >(Contacts));
            };

            client.OnAddBuddy += (sender, buddy) => {
                IContact contact = ContactFactory(buddy);
                _contacts.Add(buddy, contact);
                ContactAdded(this, new EventArgs <IContact>(contact));
            };

            client.OnDeleteBuddy += (sender, buddy) => {
                ContactRemoved(this, new EventArgs <IContact>(_contacts[buddy]));
                _contacts.Remove(buddy);
            };

            Client = client;
        }