Example #1
0
        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);
        }
Example #2
0
        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;
            }
        }