public static async Task GetInfo(Action <JObject> onCompleted) { IsLoginCall = false; var accessToken = await RefreshAccessToken(); var param = NSDictionary.FromObjectAndKey(CurrentParameters.ToString(",").ToNs(), "fields".ToNs()); var request = new SDK.CoreKit.GraphRequest("me", param, accessToken.TokenString, null, "GET"); request.Start(new SDK.CoreKit.GraphRequestBlockHandler(GraphCallback)); UserInfoFetched.ClearHandlers(); UserInfoFetched.Handle(onCompleted); }
public static async Task SetFromApi <TViewModel, TApiResult>( this Bindable <TViewModel> @this, Expression <Func <TViewModel, TApiResult> > viewModelProperty, string apiUrl, AsyncEvent <RevisitingEventArgs> pageRevisiting = null) { var binding = new Bindable <TViewModel> .ViewModelMemberBinding <TApiResult>(@this, viewModelProperty); var cacheAvailable = false; async Task refresh() { var fresh = await BaseApi.Get <TApiResult>(apiUrl, cacheChoice : ApiResponseCache.PreferThenUpdate, refresher : binding.Update); if (!cacheAvailable && fresh != null) { binding.Update(fresh); } } // If there is a cached result already available, set it immediately var result = await BaseApi.Get <TApiResult>(apiUrl, cacheChoice : ApiResponseCache.CacheOrNull); if (result != null) { cacheAvailable = true; await binding.Update(result); } // Otherwise send a fresh request and apply the value. refresh().RunInParallel(); // When gone back to the page, also refresh. if (pageRevisiting != null) { pageRevisiting.Handle(x => refresh()); } }
static PushNotification() { ReceivedError.Handle(error => Log.For(typeof(PushNotification)).Error("Push Notification Error: " + error)); Init(); }