public SelectFriendViewModel(GameRepository repository) { this.repository = repository; this.PageTitle = "Facebook Friends"; }
private void AuthThroughBuddy(string fbUserId, string fbUserToken) { //Check to ensure everything's setup right GcmClient.CheckDevice(this); GcmClient.CheckManifest(this); GcmClient.Register(this, GcmBroadcastReceiver.SENDER_IDS); var registrationId = GcmClient.GetRegistrationId(this); FacebookClient fb = new FacebookClient(fbUserToken); fb.AppId = AppId; fb.AppSecret = AppSecret; BuddyClient client = new BuddyClient(BuddyAppName, BuddyAppKey); const string BuddyAccountKey = "BuddyAccount"; const string BuddyAccessTokenKey = "AccessToken"; const string FacebookIDTokenKey = "FacebookIdTokenKey"; var accountStore = AccountStore.Create(this); var savedAccount = accountStore.FindAccountsForService(BuddyAccountKey).LastOrDefault(); Task <AuthenticatedUser> getUserTask; bool saveAccount = false; if (savedAccount != null && savedAccount.Properties.ContainsKey(BuddyAccessTokenKey)) { saveAccount = false; var token = savedAccount.Properties [BuddyAccessTokenKey]; getUserTask = client.LoginAsync(token); } else { saveAccount = true; getUserTask = client.SocialLoginAsync("Facebook", fbUserId, fbUserToken).ContinueWith((u) => { if (u.IsFaulted) { // try again for kicks } return((AuthenticatedUser)u.Result); }); } getUserTask.ContinueWith(r => { Console.WriteLine("Get User Task has happened result is faulted = " + r.IsFaulted.ToString()); if (!r.IsFaulted) { AuthenticatedUser user = r.Result; var successActivity = new Action(() => { var repository = new POPpicLibrary.GameRepository(user, client, fb); Console.WriteLine("Success task is running!"); if (saveAccount) { var properties = new Dictionary <string, string>(); properties[BuddyAccessTokenKey] = user.Token; properties[FacebookIDTokenKey] = fbUserId; Account buddyAccount = new Account(user.ID.ToString(), properties); accountStore.Save(buddyAccount, BuddyAccountKey); } // Finish(); if (progressDialog != null) { progressDialog.Dismiss(); } ((POPpicApplication)Application).SetGameRepository(repository); }); if (string.IsNullOrEmpty(user.ApplicationTag)) { user.PhotoAlbums.CreateAsync(user.ID.ToString(), true, null).ContinueWith(pa => { if (!pa.IsFaulted) { var album = pa.Result; user.VirtualAlbums.CreateAsync(user.ID.ToString(), null).ContinueWith(va => { if (!va.IsFaulted) { var virtualAlbum = va.Result; var extraData = new UserExtraData(); extraData.UploadAlbumId = album.AlbumId; extraData.WinnerAblumVirtualId = virtualAlbum.ID; user.UpdateAsync(null, null, UserGender.Any, 0, null, UserStatus.Any, false, false, JsonConvert.SerializeObject(extraData)).ContinueWith(updateResult => { if (!updateResult.IsFaulted && updateResult.Result) { RunOnUiThread(successActivity); } }); } }); } }); } else { RunOnUiThread(successActivity); } } else { if (progressDialog != null) { progressDialog.Dismiss(); } RunOnUiThread(() => { AndroidUtilities.ShowAlert(this, "Error Getting User Account", r.Exception.Message, "Try Again", (object sender, DialogClickEventArgs e) => { AuthThroughBuddy(); }); }); Console.WriteLine(r.Exception.Message); } }); }
public MyTrophiesViewModel(GameRepository repository) { this.repository = repository; IsInitialized = false; }
void HandleRepositoryLoaded(object sender, POPpicLibrary.GameRepository e) { TabBar.Hidden = false; InitializeMyGames(); }