protected override async void OnIncomingPayload(NotificationPayload payload) { base.OnIncomingPayload(payload); string leagueId; string winnerId; string challengeId; if (payload.Payload.TryGetValue("leagueId", out leagueId)) { if (leagueId == ViewModel.League.Id) { var challenge = ViewModel.CurrentMembership?.OngoingChallenge; payload.Payload.TryGetValue("challengeId", out challengeId); if (challenge != null && challengeId == challenge.Id && payload.Payload.TryGetValue("winningAthleteId", out winnerId)) { if (!_didPost) { PushChallengeDetailsPage(ViewModel.OngoingChallengeViewModel?.Challenge, true); } } await ViewModel.RefreshLeague(true); Device.BeginInvokeOnMainThread(() => { rankStrip.Membership = ViewModel.CurrentMembership; }); } } }
protected override async void OnIncomingPayload(NotificationPayload payload) { string challengeId; string winnerId; if (payload.Payload.TryGetValue("challengeId", out challengeId)) { if (challengeId == ViewModel?.Challenge?.Id) { await ViewModel.RefreshChallenge(); if (ViewModel.Challenge == null) { OnDecline?.Invoke(); await Navigation.PopAsync(); return; } if (payload.Payload.TryGetValue("winningAthleteId", out winnerId)) { OnPostResults?.Invoke(); } } } }
async protected virtual void OnIncomingPayload(NotificationPayload payload) { string challengeId; if (payload.Payload.TryGetValue("challengeId", out challengeId)) { try { var vm = new BaseViewModel(); var task = AzureService.Instance.GetChallengeById(challengeId); await vm.RunSafe(task); if (task.IsCompleted && !task.IsFaulted && task.Result != null) { var details = new ChallengeDetailsPage(task.Result); details.AddDoneButton(); await App.Current.MainPage.Navigation.PushModalAsync(details.WithinNavigationPage()); } } catch (Exception e) { InsightsManager.Report(e); Console.WriteLine(e); } } }
public async Task NotifyByTags(string message, List<string> tags, NotificationPayload payload = null, int? badgeCount = null) { if (WebApiConfig.IsDemoMode) return; var notification = new Dictionary<string, string> { { "message", message } }; if(payload != null) { var json = JsonConvert.SerializeObject(payload); notification.Add("payload", json); } else { notification.Add("payload", ""); } if (badgeCount == null) badgeCount = 0; notification.Add("badge", badgeCount.Value.ToString()); try { await _hub.SendTemplateNotificationAsync(notification, tags); } catch(Exception e) { Console.WriteLine(e); } }
internal async Task OnIncomingPayload(NotificationPayload payload) { if (payload == null) { return; } if (App.CurrentAthlete == null) { _shelvedPayload = payload; return; } string challengeId; if (payload.Payload.TryGetValue("challengeId", out challengeId)) { try { var vm = new BaseViewModel(); var task = AzureService.Instance.GetChallengeById(challengeId); await vm.RunSafe(task); var details = new ChallengeDetailsPage(task.Result); details.AddDoneButton(); await App.Current.MainPage.Navigation.PushModalAsync(details.GetNavigationPage()); } catch (Exception e) { Insights.Report(e); Console.WriteLine(e); } } }
protected override async void OnIncomingPayload(NotificationPayload payload) { base.OnIncomingPayload(payload); var reload = false; string membershipId = null; string winningAthleteId = null; string losingAthleteId = null; if (payload.Payload.TryGetValue("membershipId", out membershipId) && membershipId == ViewModel.MembershipId) { reload = true; } if (payload.Payload.TryGetValue("winningAthleteId", out winningAthleteId) && payload.Payload.TryGetValue("losingAthleteId", out losingAthleteId)) { reload |= winningAthleteId == ViewModel.Membership.AthleteId || losingAthleteId == ViewModel.Membership.AthleteId; } // reload |= payload.Payload.TryGetValue("challengeId", out challengeId) && ViewModel.Membership.Athlete.AllChallenges.Any(c => c.Id == challengeId); if (reload) { await ViewModel.RefreshMembership(); } }
protected override async void OnIncomingPayload(NotificationPayload payload) { base.OnIncomingPayload(payload); string leagueId; if (payload.Payload.TryGetValue("leagueId", out leagueId)) { if (leagueId == ViewModel.League.Id) { await ViewModel.GetLeaderboard(true); } } }
/// <summary> /// This method is here purely to handle shelved push notifications /// </summary> /// <param name="payload">Payload.</param> internal async Task OnIncomingPayload(NotificationPayload payload) { if (payload == null) { return; } if (App.CurrentAthlete == null) { PendingNotificationPayload = payload; } else { MessagingCenter.Send <App, NotificationPayload>(App.Current, Messages.IncomingPayloadReceived, payload); } }
protected override async void OnIncomingPayload(NotificationPayload payload) { base.OnIncomingPayload(payload); string leagueId = null; if (payload.Payload.TryGetValue("leagueId", out leagueId)) { //await ViewModel.RemoteRefresh(); return; } string challengeId; if (payload.Payload.TryGetValue("challengeId", out challengeId)) { await ViewModel.RemoteRefresh(); return; } }
/// <summary> /// This method is here purely to handle shelved push notifications /// </summary> /// <param name="payload">Payload.</param> internal async Task OnIncomingPayload(NotificationPayload payload) { if(payload == null) return; if(App.CurrentAthlete == null) { PendingNotificationPayload = payload; } else { MessagingCenter.Send<App, NotificationPayload>(App.Current, Messages.IncomingPayloadReceived, payload); } }
public async Task NotifyByTag(string message, string tag, NotificationPayload payload = null, int? badgeCount = null) { await NotifyByTags(message, new List<string> { tag }, payload, badgeCount); }
async void OnAuthenticationComplete() { await OnIncomingPayload(_shelvedPayload); _shelvedPayload = null; }
internal async Task OnIncomingPayload(NotificationPayload payload) { if(payload == null) return; if(App.CurrentAthlete == null) { _shelvedPayload = payload; return; } string challengeId; if(payload.Payload.TryGetValue("challengeId", out challengeId)) { try { var vm = new BaseViewModel(); var task = AzureService.Instance.GetChallengeById(challengeId); await vm.RunSafe(task); var details = new ChallengeDetailsPage(task.Result); details.AddDoneButton(); await App.Current.MainPage.Navigation.PushModalAsync(details.GetNavigationPage()); } catch(Exception e) { Insights.Report(e); Console.WriteLine(e); } } }
async protected virtual void OnIncomingPayload(NotificationPayload payload) { }