private void SendInvites(List<Contact> toContactsList) { int count = 0; RunOnUiThread(delegate { dialog = new ProgressDialog(context); dialog.SetMessage(Application.Context.GetString(Resource.String.invitePBMessage)); dialog.SetTitle(Application.Context.GetString(Resource.String.invitePBTitle)); dialog.SetProgressStyle(ProgressDialogStyle.Horizontal); dialog.Max = toContactsList.Count; dialog.Progress = 0; dialog.Show(); }); switch (this.networkType) { case AccountOAuth.OAuthTypes.FaceBook: foreach (Contact eachContact in toContactsList) { try { string oauthID = string.Empty; for (int i = 0; i < eachContact.ContactOAuths.Count; i++) { if (eachContact.ContactOAuths [i].OAuthType == AccountOAuth.OAuthTypes.FaceBook) { oauthID = eachContact.ContactOAuths [i].OAuthID; break; } } #if(DEBUG) this.Provider.PostToFeed("Testing, nevermind. http://www.example.com", oauthID); #else this.Provider.PostToFeed (string.Format ( Application.Context.GetString (Resource.String.inviteFacebookPostMessageFormat), LOLConstants.LinkLOLAppWebsiteUrl), oauthID); #endif RunOnUiThread(delegate { dialog.Progress = (int)(++count / toContactsList.Count); }); } catch (Exception ex) { #if(DEBUG) System.Diagnostics.Debug.WriteLine("Exception inviting user: {0} {1}\n{2}--{3}", eachContact.ContactUser.FirstName, eachContact.ContactUser.LastName, ex.Message, ex.StackTrace); #endif } } break; case AccountOAuth.OAuthTypes.Google: case AccountOAuth.OAuthTypes.YouTube: if (toContactsList.Count > 0) { List<LOLConnectInviteEmail> emailInvites = new List<LOLConnectInviteEmail>(); emailInvites = toContactsList .Select(s => { return new LOLConnectInviteEmail() { ContactName = string.Format("{0} {1}", s.ContactUser.FirstName, s.ContactUser.LastName), EmailAddress = s.ContactUser.EmailAddress, OAuthType = this.networkType }; }) .ToList(); //RunOnUiThread(delegate { dialog.Progress = (int)(++count / toContactsList.Count); }); RunOnUiThread(() => Toast.MakeText(context, Application.Context.GetString(Resource.String.commonSendInvite), ToastLength.Short).Show()); LOLConnectClient service = new LOLConnectClient(LOLConstants.DefaultHttpBinding, LOLConstants.LOLConnectEndpoint); service.ContactsSendInviteEmailCompleted += Service_ContactsSendInviteEmailCompleted; service.ContactsSendInviteEmailAsync(emailInvites); }//end if break; case AccountOAuth.OAuthTypes.LinkedIn: if (toContactsList.Count > 0) { try { LLinkedInManager lMan = (LLinkedInManager)this.Provider; lMan.PostToFeed( StringUtils.CreateLinkedInXMLMessage(Application.Context.GetString(Resource.String.inviteLinkedInPostMessage), LOLConstants.LinkLOLAppWebsiteUrl, AndroidData.CurrentUser, lMan.GetUserProfileUrl()), string.Empty); RunOnUiThread(delegate { dialog.Progress = (int)(++count / toContactsList.Count); }); } catch (Exception ex) { #if(DEBUG) System.Diagnostics.Debug.WriteLine("Exception creating LinkedIn activity: {0}--{1}", ex.Message, ex.StackTrace); #endif } } break; } RunOnUiThread(delegate { if (dialog != null) dialog.Dismiss(); }); }