public async Task <ClientValidationOutcome> ValidateSubscription(Subscription subscription, HubValidationOutcome outcome) { if (subscription == null) { throw new ArgumentNullException(nameof(subscription)); } SubscriptionBase callbackParameters = null; if (outcome == HubValidationOutcome.Canceled) { logger.LogDebug("Simulating canceled subscription."); callbackParameters = new SubscriptionCancelled { Reason = $"The subscription {subscription} was canceled for testing purposes.", }; } else { logger.LogDebug("Verifying subscription."); callbackParameters = new SubscriptionVerification { // Note that this is not necessarily cryptographically random/secure. Challenge = Guid.NewGuid().ToString("n"), Lease_Seconds = subscription.Lease_Seconds }; } // Default parametres for both cancel/verify. callbackParameters.Callback = subscription.Callback; callbackParameters.Events = subscription.Events; callbackParameters.Mode = subscription.Mode; callbackParameters.Topic = subscription.Topic; logger.LogDebug($"Calling callback url: {subscription.Callback}"); var callbackUri = new SubscriptionCallback().GetCallbackUri(subscription, callbackParameters); var response = await new HttpClient().GetAsync(callbackUri); if (!response.IsSuccessStatusCode) { logger.LogInformation($"Status code was not success but instead {response.StatusCode}"); return(ClientValidationOutcome.NotVerified); } if (outcome == HubValidationOutcome.Valid) { var challenge = ((SubscriptionVerification)callbackParameters).Challenge; var responseBody = (await response.Content.ReadAsStringAsync()); if (responseBody != challenge) { logger.LogInformation($"Callback result for verification request was not equal to challenge. Response body: '{responseBody}', Challenge: '{challenge}'."); return(ClientValidationOutcome.NotVerified); } return(ClientValidationOutcome.Verified); } return(ClientValidationOutcome.NotVerified); }
public void Handle(SubscriptionCancelled message) { if (this._user == null || message.UserId != this._user.id) { return; } this._user.friend_status = 0; this.NotifySubscribeProperties(); }
public void Handle(SubscriptionCancelled message) { if (message.UserId != this.UserId) { return; } this.IsHandled = false; this.AddToFriendsButtonIcon = "../Resources/New/FriendAdd.png"; this.AddToFriendsButtonForeground = new SolidColorBrush(Color.FromArgb(byte.MaxValue, (byte)81, (byte)129, (byte)184)); }
public void Handle(SubscriptionCancelled message) { if (this._userOrGroupId != AppGlobalStateManager.Current.LoggedInUserId || this._isGroup || !this._subscriptions) { return; } Execute.ExecuteOnUIThread((Action)(() => { UserGroupHeader userGroupHeader = this.FollowersVM.Collection.FirstOrDefault <UserGroupHeader>((Func <UserGroupHeader, bool>)(f => { if (f.UserHeader != null) { return(f.UserHeader.UserId == message.UserId); } return(false); })); if (userGroupHeader == null) { return; } this.FollowersVM.Delete(userGroupHeader); })); }
public void Handle(SubscriptionCancelled message) { this.UpdateUserFriendStatus(message.UserId, 0); }