using System; using System.Collections; namespace Lumpio.Net.Msn { public class MsnUser : IComparable { private string passport; public string Passport { get { return passport; } } private string nickName; public string NickName { get { return nickName; } set { nickName = value; } } /*private bool online = false; public bool Online { get { return online; } set { online = value; } }*/ private MsnPresence presence = MsnPresence.Offline; public MsnPresence Presence { get { return presence; } set { presence = value; } } private MsnClientCapabilities clientCapabilities = MsnClientCapabilities.None; public MsnClientCapabilities ClientCapabilities { get { return clientCapabilities; } set { clientCapabilities = value; } } private Guid guid; public Guid Guid { get { return guid; } } private string personalMessage = ""; public string PersonalMessage { get { return personalMessage; } set { personalMessage = value; } } private string currentMediaType = ""; public string CurrentMediaType { get { return currentMediaType; } set { currentMediaType = value; } } private string currentMediaMessage = ""; public string CurrentMediaMessage { get { return currentMediaMessage; } set { currentMediaMessage = value; } } public MsnUser(string passport, string nickName, Guid guid) { this.passport = passport; this.nickName = nickName; this.guid = guid; } public override string ToString() { return this.NickName + " <" + this.Passport + ">"; } public int CompareTo(object obj) { if (!(obj is MsnUser)) { throw new ArgumentException(); } return this.Passport.CompareTo(((MsnUser)obj).Passport); } } public class MsnUserCollection : CollectionBase { public void Add(MsnUser user) { InnerList.Add(user); } public MsnUser this[int index] { get { return (MsnUser)InnerList[index]; } set { InnerList[index] = value; } } public MsnUser GetByPassport(string passport) { foreach (MsnUser u in InnerList) { if (u.Passport == passport) { return u; } } return null; } public MsnUser GetByGuid(Guid guid) { foreach (MsnUser u in InnerList) { if (u.Guid.Equals(u.Guid)) { return u; } } return null; } public void Remove(MsnUser user) { for (int i = 0; i < this.InnerList.Count; ++i) { if (((MsnUser)this.InnerList[i]).CompareTo(user) == 0) { this.RemoveAt(i); return; } } } } }