Example #1
0
        public void SendUpdate(string name, IBuddyProperties properties, UserStatus status)
        {
            UserStatus lastStatus = thisUser.Status;

            UserInfo userInfo;

            lock (thisUser)
            {
                thisUser.DisplayName = name;
                thisUser.Status      = status;
                thisUser.Properties  = properties.ToDictionary();

                userInfo = thisUser.Clone();
            }

            if (lastStatus == UserStatus.Offline)
            {
                if (status != UserStatus.Offline)
                {
                    discovery.Login(userInfo);
                }
            }
            else if (status == UserStatus.Offline)
            {
                discovery.FakeLogout(userInfo);
            }
            else
            {
                discovery.Update(userInfo);
            }
        }
Example #2
0
 void StartPresenceService(string username, IBuddyProperties properties, PresenceServiceOptions presenceOptions)
 {
     presenceService              = new PresenceService(presenceOptions);
     presenceService.UserOffline += presenceService_UserOffline;
     presenceService.UserOnline  += presenceService_UserOnline;
     presenceService.UserUpdated += presenceService_UserUpdated;
     presenceService.Login(username, properties);
 }
Example #3
0
 internal void Update(UserStatus status, string displayName, IPEndPoint chatEndPoint, IDictionary <string, string> properties)
 {
     this.Status       = status;
     this.DisplayName  = displayName;
     this.ChatEndPoint = chatEndPoint;
     this.properties   = new BuddyProperties(properties ?? new Dictionary <string, string>());
     this.properties.PropertyChanged += (sender, e) => OnBuddyPropertiesChanged();
     OnBuddyPropertiesChanged();
     OnPropertyChanged("ChatEndPoint");
 }
Example #4
0
        public void Login(string name, IBuddyProperties properties)
        {
            thisUser.DisplayName = name;
            thisUser.Status      = UserStatus.Online;
            thisUser.Properties  = properties.ToDictionary();

            channel.Start();
            discovery.Login(thisUser.Clone());
            keepAlive.Start();
        }
        public Buddy(string id, string displayName, UserStatus status, IPEndPoint chatEndPoint, IBuddyProperties properties)
        {
            this.Id           = id;
            this.DisplayName  = displayName;
            this.Status       = status;
            this.ChatEndPoint = chatEndPoint;

            this.properties = properties;
            this.properties.PropertyChanged += (sender, e) => OnBuddyPropertiesChanged();
            initialized = true;
            LastUpdated = DateTime.Now;
        }
Example #6
0
 public SelfBuddy(IChatClient client, string id, string displayName, UserStatus status, IBuddyProperties properties) : base(id, displayName, status, null, properties)
 {
     this.client = client;
 }