async Task <bool> ResendPremium()
        {
            AccountActions.cycledRequestCancelled = true;
            _activityIndicator.Visibility         = ViewStates.Visible;
            _resendBn.Visibility = ViewStates.Gone;
            var    clientName = Android.OS.Build.Manufacturer + " " + Android.OS.Build.Model;
            string res        = null;

            try
            {
                res = await _accountActions.AccountVerification(clientName, _databaseMethods.GetEmailFromValidTill_RepeatAfter(), Guid.NewGuid().ToString() /*NativeMethods.GetDeviceId()*/);
            }
            catch (Exception ex)
            {
                if (!_methods.IsConnected())
                {
                    NoConnectionActivity.ActivityName = this;
                    StartActivity(typeof(NoConnectionActivity));
                    Finish();
                    Analytics.TrackEvent("446 finish waiting email");
                    return(false);
                }
            }
            if (String.IsNullOrEmpty(res))
            {
                if (!_methods.IsConnected())
                {
                    NoConnectionActivity.ActivityName = this;
                    StartActivity(typeof(NoConnectionActivity));
                    Finish();
                    Analytics.TrackEvent("457 finish waiting email");
                    return(false);
                }
            }
            _activityIndicator.Visibility = ViewStates.Gone;
            _resendBn.Visibility          = ViewStates.Visible;
            if (res.Contains("actionJwt"))
            {
                var deserializedValue = JsonConvert.DeserializeObject <AccountVerificationModel>(res);
                _databaseMethods.InsertActionJwt(deserializedValue.actionJwt);
                EmailActivity.ActionToken = deserializedValue.actionToken;
                EmailActivity.RepeatAfter = deserializedValue.repeatAfter;
                EmailActivity.ValidTill   = deserializedValue.validTill;
                _databaseMethods.InsertValidTillRepeatAfter(EmailActivity.ValidTill, EmailActivity.RepeatAfter, ConfirmEmailActivity.EmailValue);
                //var intent = new Intent(this, typeof(WaitingEmailConfirmActivity));
                //intent.SetFlags(ActivityFlags.NoHistory);
                //intent.SetFlags(ActivityFlags.NewTask);
                StartActivity(typeof(WaitingEmailConfirmActivity));
                return(true);
                //Finish();
                //ViewDidAppear(false);
            }
            //if (res.ToLower().Contains("ыполнено ранее"))
            //{
            Toast.MakeText(this, TranslationHelper.GetString("RequestReExecutionTimeHasNotYetCome", _ci), ToastLength.Short).Show();
            //}
            return(true);
        }
Exemplo n.º 2
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            InitElements();

            backBn.TouchUpInside += (s, e) =>
            {
                this.NavigationController.PopViewController(true);
            };
            if (!methods.IsConnected())
            {
                NoConnectionViewController.view_controller_name = GetType().Name;
                this.NavigationController.PushViewController(storyboard.InstantiateViewController(nameof(NoConnectionViewController)), false);
                return;
            }
            nextBn.TouchUpInside += async(s, e) =>
            {
                if (String.IsNullOrEmpty(EmailTextField.Text))
                {
                    UIAlertView alert_empty = new UIAlertView()
                    {
                        Title = "Введите email"
                    };
                    alert_empty.AddButton("OK");
                    alert_empty.Show();
                }
                else
                {
                    try
                    {
                        ConfirmEmailViewControllerNew.email_value = methods.EmailValidation(EmailTextField.Text);

                        activityIndicator.Hidden = false;
                        nextBn.Hidden            = true;
                        var    deviceName = UIDevice.CurrentDevice.Name;//IdentifierForVendor.ToString();
                        var    UDID       = UIDevice.CurrentDevice.IdentifierForVendor.ToString();
                        string res        = null;
                        try
                        {
                            res = await accountActions.AccountVerification(deviceName, EmailTextField.Text.ToLower(), UDID);
                        }
                        catch
                        {
                            if (!methods.IsConnected())
                            {
                                InvokeOnMainThread(() =>
                                {
                                    NoConnectionViewController.view_controller_name = GetType().Name;
                                    this.NavigationController.PushViewController(storyboard.InstantiateViewController(nameof(NoConnectionViewController)), false);
                                    return;
                                });
                            }
                            return;
                        }
                        Analytics.TrackEvent($"{deviceName} {res}");

                        activityIndicator.Hidden = true;
                        nextBn.Hidden            = false;
                        string      error_message = "";
                        UIAlertView alert         = new UIAlertView()
                        {
                            Title   = "Ошибка",
                            Message = "Что-то пошло не так."
                        };
                        if (res.ToLower().Contains(Constants.alreadyDone.ToLower()))
                        {
                            var possibleRepeat = TimeZone.CurrentTimeZone.ToLocalTime(databaseMethods.GetRepeatAfter());
                            var hour           = possibleRepeat.Hour.ToString();
                            var minute         = possibleRepeat.Minute.ToString();
                            var second         = possibleRepeat.Second.ToString();
                            if (hour.Length < 2)
                            {
                                hour = "0" + hour;
                            }
                            if (minute.Length < 2)
                            {
                                minute = "0" + minute;
                            }
                            if (second.Length < 2)
                            {
                                second = "0" + second;
                            }
                            alert.Message = "Запрос был выполнен ранее. Следующий можно будет выполнить после "
                                            + hour + ":" + minute + ":" + second;
                            alert.AddButton("OK");
                            alert.Show();
                            return;
                        }
                        if (res.Contains("SubscriptionConstraint") || String.IsNullOrEmpty(res))
                        {
                            error_message = "_";
                            var vc = storyboard.InstantiateViewController(nameof(EmailAlreadyRegisteredViewController));
                            this.NavigationController.PushViewController(vc, true);
                        }
                        else if (res.Contains("The Email field is not a valid e-mail address"))
                        {
                            error_message = "Неверный формат почты";
                        }
                        if (!String.IsNullOrEmpty(error_message))
                        {
                            if (!error_message.Contains("_"))
                            {
                                alert = new UIAlertView()
                                {
                                    Title   = "Ошибка",
                                    Message = error_message
                                };
                                alert.AddButton("OK");
                                alert.Show();
                            }
                        }
                        if (res.Contains("actionJwt"))
                        {
                            var deserialized_value = JsonConvert.DeserializeObject <AccountVerificationModel>(res);
                            databaseMethods.InsertActionJwt(deserialized_value.actionJwt);
                            Analytics.TrackEvent($"{"actionJwt:"} {deserialized_value.actionJwt}");
                            EmailViewControllerNew.actionToken = deserialized_value.actionToken;
                            EmailViewControllerNew.repeatAfter = deserialized_value.repeatAfter;
                            EmailViewControllerNew.validTill   = deserialized_value.validTill;
                            databaseMethods.InsertValidTillRepeatAfter(EmailViewControllerNew.validTill, EmailViewControllerNew.repeatAfter, ConfirmEmailViewControllerNew.email_value);
                            var vc = storyboard.InstantiateViewController(nameof(WaitingEmailConfirmViewController));
                            this.NavigationController.PushViewController(vc, true);
                        }
                    }
                    catch
                    {
                        UIAlertView alert_empty = new UIAlertView()
                        {
                            Title = "Email некорректен"
                        };
                        alert_empty.AddButton("OK");
                        alert_empty.Show();
                    }
                }
            };
            EmailTextField.EditingChanged += (s, e) =>
            {
                email_value = EmailTextField.Text;
            };

            email_value = databaseMethods.GetEmailFromValidTill_RepeatAfter();
            var timer = new System.Timers.Timer();

            timer.Interval = 400;
            timer.Elapsed += delegate
            {
                timer.Stop();
                timer.Dispose();
                InvokeOnMainThread(() =>
                {
                    if (!String.IsNullOrEmpty(email_value))
                    {
                        EmailTextField.BecomeFirstResponder();
                        EmailTextField.Text = email_value;
                    }
                });
            };
            timer.Start();
        }
Exemplo n.º 3
0
 private async Task <bool> NextBnTouch()
 {
     if (String.IsNullOrEmpty(_emailEt.Text))
     {
         Toast.MakeText(this, TranslationHelper.GetString("enterEmail", _ci), ToastLength.Short).Show();
     }
     else
     {
         try
         {
             ConfirmEmailActivity.EmailValue = _methods.EmailValidation(_emailEt.Text);
             _activityIndicator.Visibility   = ViewStates.Visible;
             _nextBn.Visibility = ViewStates.Gone;
             var    clientName = Android.OS.Build.Manufacturer + " " + Android.OS.Build.Model;
             string res        = null;
             try
             {
                 res = await _accountActions.AccountVerification(clientName, _emailEt.Text.ToLower(), Guid.NewGuid().ToString() /*NativeMethods.GetDeviceId()*/);
             }
             catch (Exception ex)
             {
                 if (!_methods.IsConnected())
                 {
                     NoConnectionActivity.ActivityName = this;
                     StartActivity(typeof(NoConnectionActivity));
                     Finish();
                     return(false);
                 }
             }
             Analytics.TrackEvent($"{clientName} {res}");
             if (String.IsNullOrEmpty(res))
             {
                 if (!_methods.IsConnected())
                 {
                     NoConnectionActivity.ActivityName = this;
                     StartActivity(typeof(NoConnectionActivity));
                     Finish();
                     return(false);
                 }
             }
             _activityIndicator.Visibility = ViewStates.Gone;
             _nextBn.Visibility            = ViewStates.Visible;
             string errorMessage = "";
             if (res.Contains(Constants.alreadyDone))
             {
                 if (res.Contains(Constants.alreadyDone))
                 {
                     var possibleRepeat = TimeZone.CurrentTimeZone.ToLocalTime(_databaseMethods.GetRepeatAfter());
                     var hour           = possibleRepeat.Hour.ToString();
                     var minute         = possibleRepeat.Minute.ToString();
                     var second         = possibleRepeat.Second.ToString();
                     if (hour.Length < 2)
                     {
                         hour = "0" + hour;
                     }
                     if (minute.Length < 2)
                     {
                         minute = "0" + minute;
                     }
                     if (second.Length < 2)
                     {
                         second = "0" + second;
                     }
                     Toast.MakeText(this, TranslationHelper.GetString("requestAlreadyDone", _ci)
                                    + hour + ":" + minute + ":" + second, ToastLength.Long).Show();
                     return(false);
                 }
             }
             if (res.Contains(Constants.SubscriptionConstraint) || String.IsNullOrEmpty(res))
             {
                 errorMessage = "_";
                 StartActivity(typeof(EmailAlreadyRegisteredActivity));
             }
             else if (res.Contains(Constants.emailFieldNotValid))
             {
                 errorMessage = TranslationHelper.GetString("incorrectEmailFormat", _ci);
             }
             if (!String.IsNullOrEmpty(errorMessage))
             {
                 if (!errorMessage.Contains("_"))
                 {
                     if (!errorMessage.Contains("_"))
                     {
                         Toast.MakeText(this, errorMessage, ToastLength.Short).Show();
                     }
                 }
             }
             if (res.Contains(Constants.actionJwt))
             {
                 var deserializedValue = JsonConvert.DeserializeObject <AccountVerificationModel>(res);
                 _databaseMethods.InsertActionJwt(deserializedValue.actionJwt);
                 Analytics.TrackEvent($"{clientName} {deserializedValue.actionJwt}");
                 EmailActivity.ActionToken = deserializedValue.actionToken;
                 EmailActivity.RepeatAfter = deserializedValue.repeatAfter;
                 EmailActivity.ValidTill   = deserializedValue.validTill;
                 _databaseMethods.InsertValidTillRepeatAfter(EmailActivity.ValidTill, EmailActivity.RepeatAfter, ConfirmEmailActivity.EmailValue);
                 StartActivity(typeof(WaitingEmailConfirmActivity));
             }
         }
         catch (Exception ex)
         {
             Toast.MakeText(this, TranslationHelper.GetString("incorrectEmail", _ci), ToastLength.Short).Show();
             _activityIndicator.Visibility = ViewStates.Gone;
             _nextBn.Visibility            = ViewStates.Visible;
         }
     }
     return(true);
 }
 private async Task <bool> nextBnTouch()
 {
     if (String.IsNullOrEmpty(EmailTextField.Text))
     {
         UIAlertView alert_empty = new UIAlertView()
         {
             Title = "Введите email"
         };
         alert_empty.AddButton("OK");
         alert_empty.Show();
     }
     else
     {
         try
         {
             ConfirmEmailViewControllerNew.email_value = methods.EmailValidation(EmailTextField.Text);
             activityIndicator.Hidden = false;
             nextBn.Hidden            = true;
             var    UDID       = UIDevice.CurrentDevice.IdentifierForVendor.ToString();
             var    deviceName = UIDevice.CurrentDevice.Name;
             string res        = null;
             try
             {
                 res = await accountActions.AccountVerification(deviceName, EmailTextField.Text.ToLower(), UDID);
             }
             catch
             {
                 if (!methods.IsConnected())
                 {
                     InvokeOnMainThread(() =>
                     {
                         NoConnectionViewController.view_controller_name = GetType().Name;
                         this.NavigationController.PushViewController(sb.InstantiateViewController(nameof(NoConnectionViewController)), false);
                         return;
                     });
                 }
                 return(false);
             }
             Analytics.TrackEvent($"{deviceName} {res}");
             activityIndicator.Hidden = true;
             nextBn.Hidden            = false;
             string      error_message = "";
             UIAlertView alert         = new UIAlertView()
             {
                 Title   = "Ошибка",
                 Message = "Что-то пошло не так."
             };
             if (res.Contains(Constants.alreadyDone))
             {
                 if (res.Contains(Constants.alreadyDone))
                 {
                     var possibleRepeat = TimeZone.CurrentTimeZone.ToLocalTime(databaseMethods.GetRepeatAfter());
                     var hour           = possibleRepeat.Hour.ToString();
                     var minute         = possibleRepeat.Minute.ToString();
                     var second         = possibleRepeat.Second.ToString();
                     if (hour.Length < 2)
                     {
                         hour = "0" + hour;
                     }
                     if (minute.Length < 2)
                     {
                         minute = "0" + minute;
                     }
                     if (second.Length < 2)
                     {
                         second = "0" + second;
                     }
                     alert.Message = "Запрос был выполнен ранее. Следующий можно будет выполнить после "
                                     + hour + ":" + minute + ":" + second;
                     alert.AddButton("OK");
                     alert.Show();
                     return(false);
                 }
             }
             if (res.Contains(Constants.SubscriptionConstraint) || String.IsNullOrEmpty(res))
             {
                 error_message = "_";
                 var vc = sb.InstantiateViewController(nameof(EmailAlreadyRegisteredViewController));
                 this.NavigationController.PushViewController(vc, true);
             }
             else if (res.Contains(Constants.emailFieldNotValid))
             {
                 error_message = "Неверный формат почты";
             }
             if (!String.IsNullOrEmpty(error_message))
             {
                 if (!error_message.Contains("_"))
                 {
                     alert = new UIAlertView()
                     {
                         Title   = "Ошибка",
                         Message = error_message
                     };
                     alert.AddButton("OK");
                     alert.Show();
                 }
             }
             if (res.Contains(Constants.actionJwt))
             {
                 var deserialized_value = JsonConvert.DeserializeObject <AccountVerificationModel>(res);
                 databaseMethods.InsertActionJwt(deserialized_value.actionJwt);
                 Analytics.TrackEvent($"{"actionJwt:"} {deserialized_value.actionJwt}");
                 actionToken = deserialized_value.actionToken;
                 repeatAfter = deserialized_value.repeatAfter.AddSeconds(30);
                 validTill   = deserialized_value.validTill;
                 databaseMethods.InsertValidTillRepeatAfter(validTill, repeatAfter, ConfirmEmailViewControllerNew.email_value);
                 var vc = sb.InstantiateViewController(nameof(WaitingEmailConfirmViewController));
                 this.NavigationController.PushViewController(vc, true);
             }
         }
         catch (Exception ex)
         {
             UIAlertView alert_empty = new UIAlertView()
             {
                 Title = "Email некорректен"
             };
             alert_empty.AddButton("OK");
             alert_empty.Show();
         }
     }
     return(true);
 }
        async Task <bool> ResendPremium()
        {
            AccountActions.cycledRequestCancelled = true;
            activityIndicator.Hidden = false;
            resendBn.Hidden          = true;
            var deviceName = UIDevice.CurrentDevice.Name;//IdentifierForVendor.ToString();
            var UDID       = UIDevice.CurrentDevice.IdentifierForVendor.ToString();

            if (!methods.IsConnected())
            {
                activityIndicator.Hidden = true;
                resendBn.Hidden          = false;
                return(false);
            }
            InvokeInBackground(async() =>
            {
                string res = "";
                try
                {
                    res = await accountActions.AccountVerification(deviceName, databaseMethods.GetEmailFromValidTill_RepeatAfter(), UDID);
                }
                catch
                {
                    if (!methods.IsConnected())
                    {
                        InvokeOnMainThread(() =>
                        {
                            PushNoConnection();
                            return;
                        });
                    }
                    return;
                }
                InvokeOnMainThread(() =>
                {
                    activityIndicator.Hidden = true;
                    resendBn.Hidden          = false;
                    if (res.Contains("actionJwt"))
                    {
                        var deserialized_value = JsonConvert.DeserializeObject <AccountVerificationModel>(res);
                        databaseMethods.InsertActionJwt(deserialized_value.actionJwt);
                        EmailViewControllerNew.actionToken = deserialized_value.actionToken;
                        EmailViewControllerNew.repeatAfter = deserialized_value.repeatAfter;
                        EmailViewControllerNew.validTill   = deserialized_value.validTill;
                        databaseMethods.InsertValidTillRepeatAfter(EmailViewControllerNew.validTill, EmailViewControllerNew.repeatAfter, ConfirmEmailViewControllerNew.email_value);
                        //ViewDidLoad();
                        //ViewDidAppear(false);
                        var vc = sb.InstantiateViewController(nameof(WaitingEmailConfirmViewController));
                        thisNavController.PushViewController(vc, true);
                    }
                    if (res.ToLower().Contains("ыполнено ранее"))
                    {
                        UIAlertView alert = new UIAlertView()
                        {
                            Title   = "Ошибка",
                            Message = "Время повторного выполнения запроса ещё не наступило. Попробуйте повторить позже."
                        };
                        alert.AddButton("OK");
                        alert.Show();
                    }
                });
            });
            return(true);
        }