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); } }
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); }
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"); }
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; }
public SelfBuddy(IChatClient client, string id, string displayName, UserStatus status, IBuddyProperties properties) : base(id, displayName, status, null, properties) { this.client = client; }