Exemplo n.º 1
0
        async Task <bool> AcceptBn_TouchUpInside(object sender, EventArgs e)
        {
            if (!_methods.IsConnected())
            {
                NoConnectionActivity.ActivityName = this;
                StartActivity(typeof(NoConnectionActivity));
                Finish();
                return(true);
            }

            _activityIndicator.Visibility = ViewStates.Visible;
            _acceptBn.Visibility          = ViewStates.Gone;
            _cancelBn.Visibility          = ViewStates.Gone;

            var    deviceId   = NativeMethods.GetDeviceId();
            var    clientName = Android.OS.Build.Manufacturer + " " + Android.OS.Build.Model;
            string res        = null;

            try
            {
                res = await _accountActions.AccountPurge(clientName, ConfirmEmailActivity.EmailValue, deviceId);
            }
            catch (Exception ex)
            {
                if (!_methods.IsConnected())
                {
                    NoConnectionActivity.ActivityName = this;
                    StartActivity(typeof(NoConnectionActivity));
                    Finish();
                    return(false);
                }
            }
            if (String.IsNullOrEmpty(res))
            {
                if (!_methods.IsConnected())
                {
                    NoConnectionActivity.ActivityName = this;
                    StartActivity(typeof(NoConnectionActivity));
                    Finish();
                    return(false);
                }
            }
            Analytics.TrackEvent($"{"ActionJwt:"} {res}");
            _activityIndicator.Visibility = ViewStates.Gone;
            _acceptBn.Visibility          = ViewStates.Visible;
            _cancelBn.Visibility          = ViewStates.Visible;
            if (res.Contains("actionJwt"))
            {
                var deserializedValue = JsonConvert.DeserializeObject <AccountVerificationModel>(res);
                Analytics.TrackEvent($"{"ActionJwt:"} {deserializedValue.actionJwt}");
                _databaseMethods.InsertActionJwt(deserializedValue.actionJwt);
                EmailActivity.ActionToken = deserializedValue.actionToken;
                EmailActivity.RepeatAfter = deserializedValue.repeatAfter;
                EmailActivity.ValidTill   = deserializedValue.validTill;
                _databaseMethods.InsertValidTillRepeatAfter(EmailActivity.ValidTill, EmailActivity.RepeatAfter, ConfirmEmailActivity.EmailValue);
                WaitingEmailConfirmActivity.CameFromPurge = true;
                StartActivity(typeof(WaitingEmailConfirmActivity));
            }
            else
            {
                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(true);
                }
                Toast.MakeText(this, TranslationHelper.GetString("smthngWentWrong", _ci), ToastLength.Short).Show();
            }

            return(true);
        }
        void AcceptBn_TouchUpInside(object sender, EventArgs e)
        {
            if (!methods.IsConnected())
            {
                NoConnectionViewController.view_controller_name = GetType().Name;
                this.NavigationController.PushViewController(sb.InstantiateViewController(nameof(NoConnectionViewController)), false);
                return;
            }

            activityIndicator.Hidden = false;
            acceptBn.Hidden          = true;
            cancelBn.Hidden          = true;
            InvokeInBackground(async() =>
            {
                var deviceName = UIDevice.CurrentDevice.Name;//IdentifierForVendor.ToString();
                var UDID       = UIDevice.CurrentDevice.IdentifierForVendor.ToString();
                string res     = null;
                try
                {
                    res = await accountActions.AccountPurge(deviceName, ConfirmEmailViewControllerNew.email_value, UDID);
                }
                catch
                {
                    if (!methods.IsConnected())
                    {
                        InvokeOnMainThread(() =>
                        {
                            NoConnectionViewController.view_controller_name = GetType().Name;
                            this.NavigationController.PushViewController(sb.InstantiateViewController(nameof(NoConnectionViewController)), false);
                            return;
                        });
                    }
                    return;
                }
                Analytics.TrackEvent($"{deviceName} {res}");
                InvokeOnMainThread(() =>
                {
                    activityIndicator.Hidden = true;
                    acceptBn.Hidden          = false;
                    cancelBn.Hidden          = false;
                    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);
                        WaitingEmailConfirmViewController.cameFromPurge = true;
                        var vc = sb.InstantiateViewController(nameof(WaitingEmailConfirmViewController));
                        this.NavigationController.PushViewController(vc, true);
                    }
                    else
                    {
                        UIAlertView alert = new UIAlertView()
                        {
                            Title   = "Ошибка",
                            Message = "Что-то пошло не так."
                        };
                        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;
                        }
                        alert.AddButton("OK");
                        alert.Show();
                    }
                });
            });
        }