Example #1
0
        private async void confirm_Click()
        {
            ProgressBar pb = FindViewById <ProgressBar>(Resource.Id.progressBar1);

            pb.Visibility = ViewStates.Visible;

            email    = FindViewById <EditText>(Resource.Id.email);
            login    = FindViewById <EditText>(Resource.Id.login);
            password = FindViewById <EditText>(Resource.Id.pass);
            repass   = FindViewById <EditText>(Resource.Id.repass);

            edit_controls(false);

            try
            {
                if (password.Text.Length > 7)
                {
                    if (password.Text == repass.Text)
                    {
                        Utils.IsCorrectEmail(email.Text);
                        Utils.IsCorrectLogin(login.Text);
                        FirebaseController.instance.initFireBaseAuth();
                        string s = await FirebaseController.instance.Register(email.Text, password.Text, login.Text);

                        if (s != string.Empty)
                        {
                            var keys = CryptoProvider.GenerateRSAKeys();
                            FirebaseController.instance.AddContactFolder(email.Text, this, keys[0], keys[1]);
                            AccountsController.instance.CreateTable();
                            AccountsController.instance.SaveItem(new Account {
                                emailP      = email.Text, loginP = login.Text, passwordP = password.Text,
                                openKeyRsaP = keys[0], privateKeyRsaP = keys[1]
                            });
                            Toast.MakeText(this, "Register success", ToastLength.Short).Show();
                            Intent intent = new Intent(this, typeof(SignUp));
                            intent.SetFlags(ActivityFlags.NewTask);
                            StartActivity(intent);
                            Finish();
                        }
                        else
                        {
                            throw new Exception("Ошибка регистрации, проверьте подключение к интернету!");
                        }
                    }
                    else
                    {
                        throw new Exception("Пароли должны совпадать!");
                    }
                }
                else
                {
                    throw new Exception("Длина пароля должна быть больше 8 символов!");
                }
            }
            catch (FirebaseAuthUserCollisionException)
            {
                Utils.MessageBox("Пользователь с таким электронным адресом уже зарегистрирован!", this);
            }
            catch (FirebaseException exc)
            {
                Utils.MessageBox("Ошибка, проверьте подключение к интернету!", this);
            }
            catch (Exception ex)
            {
                Utils.MessageBox(ex.Message, this);
                pb.Visibility = ViewStates.Invisible;
                edit_controls(true);
            }
            edit_controls(true);
            pb.Visibility = ViewStates.Invisible;
        }