public async Task <string> UpdateUserLocal2Server(bool IsMobileNumberEdit = false, string NewMobileNumber = "", string NewSecurityToken = "") { IsSuccess = true; Message = string.Empty; this.IsInProgress = true; string result = "SUCCESS"; try { MembershipServiceRef.Profile profObjectToBeSynced = App.MyProfiles.ConvertProfile(App.MyProfiles.CurrentProfile); profObjectToBeSynced.Name = Globals.User.Name; profObjectToBeSynced.UserID = Convert.ToInt64(Globals.User.UserId); profObjectToBeSynced.Email = Globals.User.LiveEmail; profObjectToBeSynced.FBAuthID = Globals.User.FBAuthId; profObjectToBeSynced.LiveDetails = new MembershipServiceRef.LiveCred(); profObjectToBeSynced.MyBuddies = App.MyBuddies.GetAllCurrentProfileBuddies(); profObjectToBeSynced.AscGroups = App.MyGroups.GetAllCurrentProfileGroups(); MembershipServiceRef.Profile serverProfile = null; if (IsMobileNumberEdit && NewMobileNumber != string.Empty && NewSecurityToken != String.Empty) { profObjectToBeSynced.MobileNumber = NewMobileNumber; profObjectToBeSynced.SecurityToken = NewSecurityToken; profObjectToBeSynced.RegionCode = Constants.CountryCode; serverProfile = await MembershipServiceWrapper.UpdateProfilePhone(profObjectToBeSynced); } else { serverProfile = await MembershipServiceWrapper.UpdateProfile(profObjectToBeSynced); } if (!ResultInterpreter.IsError(serverProfile.DataInfo)) { this.SyncFullProfileServer2Local(serverProfile); } else { result = "ERROR"; if (ResultInterpreter.IsError(serverProfile.DataInfo, "PROFILENOTFOUND")) { result = "PROFILENOTFOUND"; } else if (ResultInterpreter.IsError(serverProfile.DataInfo, "The Profile is invalid.")) { result = "INVALIDPROFILE"; } else if (ResultInterpreter.IsError(serverProfile.DataInfo, "Invalid Security Token")) { result = "INCORRECTSECURITYCODE"; } } this.IsInProgress = false; this.IsDataLoaded = true; } catch (Exception ex) { result = "ERROR"; IsSuccess = false; Message = ex.Message; } return(result); }
private async void ConfirmButton_Click(object sender, EventArgs e) { //Need to remove the back entry . Currently we are removing the back entry from Settings page. try { if (!ValidateInputs()) { return; } if (!Globals.IsDataNetworkAvailable) { Deployment.Current.Dispatcher.BeginInvoke(() => Globals.DisplayToast(CustomMessage.NetworkNotAvailableText, "basicWrap", "Connection Unavailable")); return; } var countryDetails = selectedCountryCode == null ? (CountryCodes)CountryCodeListPicker.Items[CountryCodeListPicker.SelectedIndex] : selectedCountryCode; if ((countryDetails.IsdCode != Constants.CountryCode && countryDetails.CountryName != Constants.CountryName) || (countryDetails.IsdCode == Constants.CountryCode && countryDetails.CountryName != Constants.CountryName)) { if (!Globals.IsRegisteredUser) { var BuddiesToDelete = App.MyBuddies.Buddies.Count > 0 ? App.MyBuddies.Buddies.Where(c => !c.PhoneNumber.StartsWith(countryDetails.IsdCode)) : null; if (BuddiesToDelete != null && BuddiesToDelete.Count() > 0) { StringBuilder message = new StringBuilder(); message.Append("The below buddies would be removed as they don't belong to "); message.Append(countryDetails.CountryName + Environment.NewLine); foreach (var buddy in BuddiesToDelete) { message.Append(buddy.Name + "(" + buddy.PhoneNumber + ")" + Environment.NewLine); } if (MessageBox.Show(message.ToString(), "Buddy update", MessageBoxButton.OKCancel) == MessageBoxResult.OK) { var count = BuddiesToDelete.Count(); while (BuddiesToDelete.Count() > 0) { var buddy = BuddiesToDelete.ElementAt(0); if (buddy != null) { App.MyBuddies.DeleteBuddy(buddy); } if (App.MyBuddies.IsSuccess) { } } Globals.SetEmergencyNumbers(countryDetails); } else { CountryCodeListPicker.SelectedItem = CountryCodeListPicker.Items.First(c => ((c as CountryCodes).IsdCode == Constants.CountryCode)); return; } } else { Globals.SetEmergencyNumbers(countryDetails); } } else { var BuddiesToDelete = App.MyBuddies.Buddies.Count > 0 ? App.MyBuddies.Buddies : null; if (BuddiesToDelete != null && BuddiesToDelete.Count() > 0) { if (MessageBox.Show(CustomMessage.RegisteredBuddiesDeleteText, "Buddy Update", MessageBoxButton.OKCancel) == MessageBoxResult.OK) { var count = BuddiesToDelete.Count(); while (BuddiesToDelete.Count() > 0) { var buddy = BuddiesToDelete.ElementAt(0); if (buddy != null) { App.MyBuddies.DeleteBuddy(buddy); } if (App.MyBuddies.IsSuccess) { } } Globals.SetEmergencyNumbers(countryDetails); } else { CountryCodeListPicker.SelectedItem = CountryCodeListPicker.Items.First(c => ((c as CountryCodes).IsdCode == Constants.CountryCode)); return; } } else { Globals.SetEmergencyNumbers(countryDetails); } } } Profile profile = null; m_ProgressBar.Visibility = Visibility.Visible; if (IsMobileNumberEdited) { string message = await App.CurrentUser.UpdateUserLocal2Server(true, countryDetails.IsdCode + Utility.GetPlainPhoneNumber(MobileNumberTextBox.Text), HiddenSecurityCodeTextBox.Text.Trim()); if (message != "INCORRECTSECURITYCODE") { NavigationService.Navigate(new Uri("/Pages/Settings.xaml?ToPage=Profile&FromPage=Register", UriKind.Relative)); } Deployment.Current.Dispatcher.BeginInvoke(() => { if (message == "PROFILENOTFOUND") { Globals.DisplayToast(CustomMessage.ProfileNotFound, "basicWrap", "Oops!"); } else if (message == "INCORRECTSECURITYCODE") { Globals.DisplayToast(CustomMessage.IncorrectSecurityCode, "basicWrap", "Oops!"); } else if (message == "ERROR") { Globals.DisplayToast(CustomMessage.UnableToUpdateMobile, "basicWrap", "Oops!"); } else { Globals.DisplayToast(CustomMessage.ProfileLoadedSuccessfullyText, "basicWrap", "Success!"); } }); } else { CountryCodeTextBox.Text = countryDetails.IsdCode; profile = await MembershipServiceWrapper.CreateProfile(NameTextBox.Text, LiveIdTextBox.Text, CountryCodeTextBox.Text, Utility.GetPlainPhoneNumber(MobileNumberTextBox.Text), HiddenSecurityCodeTextBox.Text.Trim(), EnterpriseEmailTextBox.Text, HiddenEmailSecurityCodeTextBox.Text.Trim(), AccessToken, RefreshToken); //1. If profile doesn't exist, send the local profile(if any) to create a new profile in server. //2. If security code matches. Else, throw error if (profile != null && ResultInterpreter.IsError(profile.DataInfo)) { Deployment.Current.Dispatcher.BeginInvoke(() => Globals.DisplayToast(CustomMessage.ProfileCreationFailText, "basicWrap", "Error!")); m_ProgressBar.Visibility = Visibility.Collapsed; return; } else if (profile != null && ResultInterpreter.IsAuthError(profile.DataInfo)) { Deployment.Current.Dispatcher.BeginInvoke(() => Globals.DisplayToast(CustomMessage.IncorrectSecurityCode, "basicWrap", "Error!")); m_ProgressBar.Visibility = Visibility.Collapsed; return; } App.CurrentUser.SyncFullProfileServer2Local(profile); NavigationService.Navigate(new Uri("/Pages/Settings.xaml?ToPage=Buddies&FromPage=Register", UriKind.Relative)); Deployment.Current.Dispatcher.BeginInvoke(() => Globals.DisplayToast(CustomMessage.ProfileCreationSuccessText, "basicWrap", "Info!")); } m_ProgressBar.Visibility = Visibility.Collapsed; } catch (Exception ex) { m_ProgressBar.Visibility = Visibility.Collapsed; Deployment.Current.Dispatcher.BeginInvoke(() => Globals.DisplayToast(CustomMessage.UnableToConnectService, "basicWrap", "Info!")); return; } }