private void Button1Click(object sender, RoutedEventArgs e) { _notify.Accept(); Visibility = Visibility.Hidden; if (OnDismiss != null) { OnDismiss(this, null); } }
/// <summary> /// The xmpp on presence. /// </summary> /// <param name="sender"> /// The sender. /// </param> /// <param name="pres"> /// The pres. /// </param> private void XmppOnPresence(object sender, Presence pres) { // Most of this if block handles the status if logged in somewhere else as well. if (pres.From.User == this.xmpp.MyJID.User) { if (pres.Type == PresenceType.subscribe) { this.xmpp.PresenceManager.ApproveSubscriptionRequest(pres.From); } else { this.myPresence = pres; this.myPresence.Type = PresenceType.available; if (pres.Show != ShowType.NONE) { this.myPresence.Show = pres.Show; } this.xmpp.Status = this.myPresence.Status ?? this.xmpp.Status; if (this.OnDataReceived != null) { this.OnDataReceived.Invoke(this, DataRecType.MyInfo, pres); } } return; } switch (pres.Type) { case PresenceType.subscribe: if (!this.Friends.Contains(new NewUser(pres.From.Bare))) { var request = new FriendRequestNotification(pres.From.Bare, this, this.noteId); this.Notifications.Add(request); this.noteId++; if (this.OnFriendRequest != null) { this.OnFriendRequest.Invoke(this, pres.From.Bare); } request.Accept(); } else { this.AcceptFriendship(pres.From.Bare); } break; case PresenceType.subscribed: break; case PresenceType.unsubscribe: break; case PresenceType.unsubscribed: break; case PresenceType.error: break; case PresenceType.probe: break; } var presFromUser = pres.From.User; var friendToSet = this.Friends.FirstOrDefault(x => x.UserName == presFromUser); if (friendToSet != null) { friendToSet.CustomStatus = pres.Status ?? string.Empty; friendToSet.SetStatus(pres); this.Friends.Remove(friendToSet); this.Friends.Add(friendToSet); } this.XmppOnOnRosterEnd(this); }
/// <summary> /// The xmpp on presence. /// </summary> /// <param name="sender"> /// The sender. /// </param> /// <param name="pres"> /// The pres. /// </param> private void XmppOnPresence(object sender, Presence pres) { // Most of this if block handles the status if logged in somewhere else as well. if (pres.From.User == this.xmpp.MyJID.User) { if (pres.Type == PresenceType.subscribe) { this.xmpp.PresenceManager.ApproveSubscriptionRequest(pres.From); } else { this.myPresence = pres; this.myPresence.Type = PresenceType.available; if (pres.Show != ShowType.NONE) { this.myPresence.Show = pres.Show; } this.xmpp.Status = this.myPresence.Status ?? this.xmpp.Status; if (this.OnDataReceived != null) { this.OnDataReceived.Invoke(this, DataRecType.MyInfo, pres); } } return; } switch (pres.Type) { case PresenceType.subscribe: if (!this.Friends.Contains(new User(pres.From.Bare))) { var request = new FriendRequestNotification(pres.From.Bare, this, this.noteId); this.Notifications.Add(request); this.noteId++; if (this.OnFriendRequest != null) { this.OnFriendRequest.Invoke(this, pres.From.Bare); } request.Accept(); } else { this.AcceptFriendship(pres.From.Bare); } break; case PresenceType.subscribed: break; case PresenceType.unsubscribe: break; case PresenceType.unsubscribed: break; case PresenceType.error: break; case PresenceType.probe: break; } var presFromUser = pres.From.User; var friendToSet = this.Friends.FirstOrDefault(x => x.UserName == presFromUser); if (friendToSet != null) { friendToSet.CustomStatus = pres.Status ?? string.Empty; friendToSet.SetStatus(pres); this.Friends.Remove(friendToSet); this.Friends.Add(friendToSet); } this.XmppOnOnRosterEnd(this); }