Example #1
0
 private bool ValidateInputs()
 {
     return(!tbConfirmCode.SetError(tbConfirmCode.EditText.TrimInput().Length != 6 ? "Enter a valid confirmation code!" : null));
 }
        public override void OnResume()
        {
            (Dialog as AlertDialog)?.GetButton((int)DialogButtonType.Positive).SetOnClickListener(new ClickListener(async delegate
            {
                string provider = networkProvider[networkProviderSpinner.SelectedItemPosition];
                string value    = tbPhoneNo.EditText.TrimInput();

                //  Validate phone no
                if (tbPhoneNo.SetError(InputHandler.IsValidPhone(value) ? null : "Invalid phone number"))
                {
                    return;
                }

                //
                var proxy = ProxyFactory.GetProxyInstace();

                if (isEdit)
                {
                    var editInfo = new EditWalletInfo();

                    if (editInfo.Value != value)
                    {
                        editInfo.Value = value;
                    }

                    if (editInfo.Provider != provider)
                    {
                        editInfo.Provider = provider;
                    }

                    if (editInfo.AnyUpdate())
                    {
                        using (Activity.ShowProgress(null, "Saving changes, please hold on..."))
                        {
                            var response = await proxy.ExecuteAsync(API.Endpoints.WalletEndpoints.UpdateWallet(walletInfo.Id, editInfo));
                            if (response.Successful)
                            {
                                //
                                walletInfo.Provider = provider;
                                walletInfo.Value    = value;

                                //
                                OnUpdated?.Invoke(this, walletInfo);

                                //
                                Dialog.Dismiss();
                            }
                            else
                            {
                                Toast.MakeText(Activity, response.GetErrorDescription(), ToastLength.Short).Show();
                            }
                        }
                    }
                }
                else
                {
                    using (Activity.ShowProgress(null, "Creating wallet, please hold on..."))
                    {
                        var response = await proxy.ExecuteAsync(API.Endpoints.WalletEndpoints.CreateWallet(provider, value));
                        if (response.Successful)
                        {
                            OnCreated?.Invoke(this, await response.GetDataAsync <WalletInfo>());

                            //
                            Dialog.Dismiss();
                        }
                        else
                        {
                            Toast.MakeText(Activity, response.GetErrorDescription(), ToastLength.Short).Show();
                        }
                    }
                }
            }));

            base.OnResume();
        }