コード例 #1
0
        protected override async void OnResume()
        {
            base.OnResume();

            CardsCreatingProcessActivity.CameFrom = Constants.email_confirmation_waiting;
            if (!_methods.IsConnected())
            {
                NoConnectionActivity.ActivityName = this;
                StartActivity(typeof(NoConnectionActivity));
                Finish();
                Analytics.TrackEvent("147 finish waiting email");
                return;
            }

            AccountActions.cycledRequestCancelled = false;
            string res = null;

            try
            {
                res = await _accountActions.AccountActionsGet(_databaseMethods.GetActionJwt(), clientName);
            }
            catch (Exception ex)
            {
                if (!_methods.IsConnected())
                {
                    NoConnectionActivity.ActivityName = this;
                    StartActivity(typeof(NoConnectionActivity));
                    Finish();
                    Analytics.TrackEvent("164 finish waiting email");
                    return;
                }
            }
            if (String.IsNullOrEmpty(res))
            {
                if (!_methods.IsConnected())
                {
                    NoConnectionActivity.ActivityName = this;
                    StartActivity(typeof(NoConnectionActivity));
                    Finish();
                    Analytics.TrackEvent("175 finish waiting email");
                    return;
                }
            }
            if (res.Contains("processed"))
            {
                var    deserializedGet = JsonConvert.DeserializeObject <AccountActionsGetModel>(res);
                string resAuth         = null;
                try
                {
                    resAuth = await _accounts.AccountAuthorize(deserializedGet.accountClientJwt, clientName);
                }
                catch (Exception ex)
                {
                    if (!_methods.IsConnected())
                    {
                        NoConnectionActivity.ActivityName = this;
                        StartActivity(typeof(NoConnectionActivity));
                        Finish();
                        Analytics.TrackEvent("194 finish waiting email");
                        return;
                    }
                }
                if (String.IsNullOrEmpty(resAuth))
                {
                    if (!_methods.IsConnected())
                    {
                        NoConnectionActivity.ActivityName = this;
                        StartActivity(typeof(NoConnectionActivity));
                        Finish();
                        Analytics.TrackEvent("205 finish waiting email");
                        return;
                    }
                }
                var deserialized     = JsonConvert.DeserializeObject <AuthorizeRootObject>(resAuth);
                int lastSubscription = deserialized.subscriptions[deserialized.subscriptions.Count - 1].id;
                _databaseMethods.InsertLoginAfter(deserialized.accessJwt, deserialized.accountUrl, lastSubscription);
                try
                {
                    foreach (var subs in deserialized.subscriptions)
                    {
                        if (subs.limitations != null)
                        {
                            if (subs.limitations.allowMultiClients)
                            {
                                QrActivity.IsPremium = true;
                                break;
                            }
                        }
                    }
                    //if (!is_premium)
                    foreach (var subscription in deserialized.subscriptions)
                    {
                        if (subscription.limitations != null)
                        {
                            if (subscription.limitations?.cardsRemaining == null)
                            {
                                QrActivity.CardsRemaining = 10;
                                break;
                            }
                            else
                            if (subscription.limitations.cardsRemaining > QrActivity.CardsRemaining)
                            {
                                QrActivity.CardsRemaining = subscription.limitations.cardsRemaining.Value;
                            }
                        }
                    }
                    foreach (var subscription in deserialized.subscriptions)
                    {
                        if (subscription.features != null)
                        {
                            foreach (var feature in subscription.features)
                            {
                                if (feature == Constants.ExtraEmploymentData)
                                {
                                    QrActivity.ExtraEmploymentData = feature;
                                }
                                if (feature == Constants.CompanyLogoInQr)
                                {
                                    QrActivity.CompanyLogoInQr = feature;
                                }
                                if (feature == Constants.ExtraPersonData)
                                {
                                    QrActivity.ExtraPersonData = feature;
                                }
                            }
                        }
                        else
                        {
                        }
                    }
                }
                catch
                {
                }
                if (!resAuth.Contains("userTermsAccepted"))
                {
                    var    deviceId      = NativeMethods.GetDeviceId();
                    string resApplyTerms = null;
                    try
                    {
                        resApplyTerms = await _accounts.ApplyUserTerms(deserialized.accessJwt, deserializedGet.processed, deviceId);
                    }
                    catch (Exception ex)
                    {
                        if (!_methods.IsConnected())
                        {
                            NoConnectionActivity.ActivityName = this;
                            StartActivity(typeof(NoConnectionActivity));
                            Finish();
                            Analytics.TrackEvent("274 finish waiting email");
                            return;
                        }
                    }
                    if (String.IsNullOrEmpty(resApplyTerms))
                    {
                        if (!_methods.IsConnected())
                        {
                            NoConnectionActivity.ActivityName = this;
                            StartActivity(typeof(NoConnectionActivity));
                            Finish();
                            Analytics.TrackEvent("285 finish waiting email");
                            return;
                        }
                    }
                    if (resApplyTerms.ToLower().Contains(": 20") || resApplyTerms.ToLower().Contains("accepted"))
                    {
                        if (_databaseMethods.GetLoginedFrom() == Constants.from_card_creating)
                        {
                            Intent intent = new Intent(this, typeof(CardsCreatingProcessActivity));
                            intent.AddFlags(ActivityFlags.ClearTop); // Removes other Activities from stack
                            StartActivity(intent);
                            //StartActivity(typeof(CardsCreatingProcessActivity));
                            //Finish();
                        }
                        else if (_databaseMethods.GetLoginedFrom() == Constants.from_slide_menu)
                        {
                            Intent intent = new Intent(this, typeof(MyCardActivity));
                            intent.AddFlags(ActivityFlags.ClearTop); // Removes other Activities from stack
                            StartActivity(intent);
                            //StartActivity(typeof(MyCardActivity));
                            //Finish();
                        }
                        else if (_databaseMethods.GetLoginedFrom() == Constants.from_card_creating_premium)
                        {
                            Intent intent = new Intent(this, typeof(PersonalDataActivity));
                            intent.AddFlags(ActivityFlags.ClearTop); // Removes other Activities from stack
                            StartActivity(intent);
                            //StartActivity(typeof(PersonalDataActivity));
                            //Finish();
                        }
                        else
                        {
                            if (!QrActivity.IsPremium)
                            {
                                Intent intent = new Intent(this, typeof(MyCardActivity));
                                intent.AddFlags(ActivityFlags.ClearTop); // Removes other Activities from stack
                                StartActivity(intent);
                                //StartActivity(typeof(MyCardActivity));
                            }
                            else
                            {
                                Intent intent = new Intent(this, typeof(QrActivity));
                                intent.AddFlags(ActivityFlags.ClearTop); // Removes other Activities from stack
                                StartActivity(intent);
                                //StartActivity(typeof(QRActivity));
                            }
                            Finish();
                        }
                    }
                }
                else
                {
                    if (_databaseMethods.GetLoginedFrom() == Constants.from_card_creating)
                    {
                        Intent intent = new Intent(this, typeof(CardsCreatingProcessActivity));
                        intent.AddFlags(ActivityFlags.ClearTop); // Removes other Activities from stack
                        StartActivity(intent);
                        //StartActivity(typeof(CardsCreatingProcessActivity));
                        //Finish();
                    }
                    else if (_databaseMethods.GetLoginedFrom() == Constants.from_slide_menu)
                    {
                        if (!QrActivity.IsPremium)
                        {
                            Intent intent = new Intent(this, typeof(MyCardActivity));
                            intent.AddFlags(ActivityFlags.ClearTop); // Removes other Activities from stack
                            StartActivity(intent);
                            //StartActivity(typeof(MyCardActivity));
                        }
                        else
                        {
                            Intent intent = new Intent(this, typeof(QrActivity));
                            intent.AddFlags(ActivityFlags.ClearTop); // Removes other Activities from stack
                            StartActivity(intent);
                            //StartActivity(typeof(QRActivity));
                        }
                        Finish();
                    }
                    else if (_databaseMethods.GetLoginedFrom() == Constants.from_card_creating_premium)
                    {
                        Intent intent = new Intent(this, typeof(PersonalDataActivity));
                        intent.AddFlags(ActivityFlags.ClearTop); // Removes other Activities from stack
                        StartActivity(intent);
                        //StartActivity(typeof(PersonalDataActivity));
                        //Finish();
                    }
                    else
                    {
                        if (!QrActivity.IsPremium)
                        {
                            Intent intent = new Intent(this, typeof(MyCardActivity));
                            intent.AddFlags(ActivityFlags.ClearTop); // Removes other Activities from stack
                            StartActivity(intent);
                            //StartActivity(typeof(MyCardActivity));
                        }
                        else
                        {
                            Intent intent = new Intent(this, typeof(QrActivity));
                            intent.AddFlags(ActivityFlags.ClearTop); // Removes other Activities from stack
                            StartActivity(intent);
                            //StartActivity(typeof(QRActivity));
                        }
                        Finish();
                    }
                }
            }
        }
コード例 #2
0
        public override async void ViewWillAppear(bool animated)
        {
            base.ViewWillAppear(animated);
            CardsCreatingProcessViewController.came_from = Constants.email_confirmation_waiting;
            if (!methods.IsConnected())
            {
                PushNoConnection();
                return;
            }
            InvokeInBackground(async() =>
            {
                AccountActions.cycledRequestCancelled = false;
                string res = "";
                try
                {
                    var actionJwt = databaseMethods.GetActionJwt();
                    if (String.IsNullOrEmpty(actionJwt))
                    {
                        InvokeOnMainThread(() =>
                        {
                            PopThis();
                            return;
                        });
                    }
                    else
                    {
                        res = await accountActions.AccountActionsGet(actionJwt, UDID);
                    }
                }
                catch
                {
                    if (!methods.IsConnected())
                    {
                        InvokeOnMainThread(() =>
                        {
                            PushNoConnection();
                            return;
                        });
                    }
                    return;
                }
                InvokeOnMainThread(() =>
                {
                    try
                    {
                        if (!String.IsNullOrEmpty(res))
                        {
                            if (res.Contains("processed"))
                            {
                                var deserialized_get = JsonConvert.DeserializeObject <AccountActionsGetModel>(res);
                                InvokeInBackground(async() =>
                                {
                                    string res_auth = null;
                                    try
                                    {
                                        res_auth = await accounts.AccountAuthorize(deserialized_get.accountClientJwt, UDID);
                                    }
                                    catch
                                    {
                                        if (!methods.IsConnected())
                                        {
                                            InvokeOnMainThread(() =>
                                            {
                                                PushNoConnection();
                                                return;
                                            });
                                        }
                                        return;
                                    }
                                    AuthorizeRootObject deserialized = null;
                                    if (res_auth != null)
                                    {
                                        deserialized = JsonConvert.DeserializeObject <AuthorizeRootObject>(res_auth);
                                    }
                                    else
                                    {
                                        InvokeOnMainThread(() => { PopThis(); return; });
                                        return;
                                    }
                                    if (deserialized == null)
                                    {
                                        InvokeOnMainThread(() => { PopThis(); return; });
                                        return;
                                    }
                                    if (deserialized.subscriptions == null)
                                    {
                                        InvokeOnMainThread(() => { PopThis(); return; });
                                        return;
                                    }

                                    int lastSubscription = deserialized.subscriptions[deserialized.subscriptions.Count - 1].id;
                                    databaseMethods.InsertLoginAfter(deserialized.accessJwt, deserialized.accountUrl, lastSubscription);
                                    try
                                    {
                                        foreach (var subs in deserialized.subscriptions)
                                        {
                                            if (subs.limitations != null)
                                            {
                                                if (subs.limitations.allowMultiClients)
                                                {
                                                    QRViewController.is_premium = true;
                                                    break;
                                                }
                                            }
                                        }
                                        //if (!is_premium)
                                        foreach (var subscription in deserialized.subscriptions)
                                        {
                                            if (subscription.limitations != null)
                                            {
                                                if (subscription.limitations?.cardsRemaining == null)
                                                {
                                                    QRViewController.cards_remaining = 10;
                                                    break;
                                                }
                                                else
                                                {
                                                    if (subscription.limitations != null)
                                                    {
                                                        if (subscription.limitations?.cardsRemaining != null)
                                                        {
                                                            if (subscription.limitations?.cardsRemaining > QRViewController.cards_remaining)
                                                            {
                                                                QRViewController.cards_remaining = subscription.limitations.cardsRemaining.Value;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                        foreach (var subscription in deserialized.subscriptions)
                                        {
                                            NativeMethods.ClearFeatures();
                                            if (subscription.features != null)
                                            {
                                                foreach (var feature in subscription.features)
                                                {
                                                    if (feature == Constants.ExtraEmploymentData)
                                                    {
                                                        QRViewController.ExtraEmploymentData = feature;
                                                    }
                                                    if (feature == Constants.CompanyLogoInQr)
                                                    {
                                                        QRViewController.CompanyLogoInQr = feature;
                                                    }
                                                    if (feature == Constants.ExtraPersonData)
                                                    {
                                                        QRViewController.ExtraPersonData = feature;
                                                    }
                                                }
                                            }
                                            else
                                            {
                                            }
                                        }
                                    }
                                    catch
                                    {
                                    }
                                    if (!String.IsNullOrEmpty(res_auth))
                                    {
                                        if (!res_auth.Contains("userTermsAccepted"))
                                        {
                                            var UDID = UIDevice.CurrentDevice.IdentifierForVendor.ToString();
                                            //var UDID = UIDevice.CurrentDevice.Name;
                                            string res_apply_terms = null;
                                            try
                                            {
                                                res_apply_terms = await accounts.ApplyUserTerms(deserialized.accessJwt, deserialized_get.processed, UDID);
                                            }
                                            catch
                                            {
                                                if (!methods.IsConnected())
                                                {
                                                    InvokeOnMainThread(() =>
                                                    {
                                                        PushNoConnection();
                                                        return;
                                                    });
                                                }
                                                return;
                                            }
                                            if (String.IsNullOrEmpty(res_apply_terms))
                                            {
                                                InvokeOnMainThread(() => { thisNavController?.PopViewController(true); return; });
                                                return;
                                            }
                                            if (res_apply_terms.ToLower().Contains(": 20") || res_apply_terms.ToLower().Contains("accepted"))
                                            {
                                                if (databaseMethods.GetLoginedFrom() == Constants.from_card_creating)
                                                {
                                                    InvokeOnMainThread(() =>
                                                    {
                                                        try
                                                        {
                                                            thisNavController.PushViewController(sb.InstantiateViewController(nameof(CardsCreatingProcessViewController)), true);
                                                        }
                                                        catch (Exception ex)
                                                        {
                                                            Analytics.TrackEvent($"{"218 push nav controller exception"}{ex}");
                                                        }
                                                    });
                                                }
                                                else if (databaseMethods.GetLoginedFrom() == Constants.from_slide_menu)
                                                {
                                                    InvokeOnMainThread(() =>
                                                    {
                                                        try
                                                        {
                                                            thisNavController.PushViewController(sb.InstantiateViewController(nameof(RootMyCardViewController)), true);
                                                        }
                                                        catch (Exception ex)
                                                        {
                                                            Analytics.TrackEvent($"{"232 push nav controller exception"}{ex}");
                                                        }
                                                    });
                                                }
                                                else if (databaseMethods.GetLoginedFrom() == Constants.from_card_creating_premium)
                                                {
                                                    InvokeOnMainThread(() => { thisNavController.PushViewController(sb.InstantiateViewController(nameof(PersonalDataViewControllerNew)), true); });
                                                }
                                                else
                                                {
                                                    InvokeOnMainThread(() =>
                                                    {
                                                        try
                                                        {
                                                            if (!QRViewController.is_premium)
                                                            {
                                                                thisNavController.PushViewController(sb.InstantiateViewController(nameof(RootMyCardViewController)), true);
                                                            }
                                                            else
                                                            {
                                                                thisNavController.PushViewController(sb.InstantiateViewController(nameof(RootQRViewController)), true);
                                                            }
                                                        }
                                                        catch (Exception ex)
                                                        {
                                                            Analytics.TrackEvent($"{"251 or 251 push nav controller exception"}{ex}");
                                                        }
                                                    });
                                                }
                                            }
                                        }
                                        else
                                        {
                                            if (databaseMethods.GetLoginedFrom() == Constants.from_card_creating)
                                            {
                                                InvokeOnMainThread(() =>
                                                {
                                                    try
                                                    {
                                                        thisNavController.PushViewController(sb.InstantiateViewController(nameof(CardsCreatingProcessViewController)), true);
                                                    }
                                                    catch (Exception ex)
                                                    {
                                                        Analytics.TrackEvent($"{"271 push nav controller exception"}{ex}");
                                                    }
                                                });
                                            }
                                            else if (databaseMethods.GetLoginedFrom() == Constants.from_slide_menu)
                                            {
                                                InvokeOnMainThread(() =>
                                                {
                                                    try
                                                    {
                                                        if (!QRViewController.is_premium)
                                                        {
                                                            thisNavController.PushViewController(sb.InstantiateViewController(nameof(RootMyCardViewController)), true);
                                                        }
                                                        else
                                                        {
                                                            thisNavController.PushViewController(sb.InstantiateViewController(nameof(RootQRViewController)), true);
                                                        }
                                                    }
                                                    catch (Exception ex)
                                                    {
                                                        Analytics.TrackEvent($"{"286 or 288 push nav controller exception"}{ex}");
                                                    }
                                                });
                                            }
                                            else if (databaseMethods.GetLoginedFrom() == Constants.from_card_creating_premium)
                                            {
                                                InvokeOnMainThread(() => { thisNavController.PushViewController(sb.InstantiateViewController(nameof(PersonalDataViewControllerNew)), true); });
                                            }
                                            else
                                            {
                                                InvokeOnMainThread(() =>
                                                {
                                                    try
                                                    {
                                                        if (!QRViewController.is_premium)
                                                        {
                                                            thisNavController.PushViewController(sb.InstantiateViewController(nameof(RootMyCardViewController)), true);
                                                        }
                                                        else
                                                        {
                                                            thisNavController.PushViewController(sb.InstantiateViewController(nameof(RootQRViewController)), true);
                                                        }
                                                    }
                                                    catch (Exception ex)
                                                    {
                                                        Analytics.TrackEvent($"{"307 or 309 push nav controller exception"}{ex}");
                                                    }
                                                });
                                            }
                                        }
                                    }
                                });
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        Analytics.TrackEvent($"{"ViewWillAppear:"}{ex}");
                    }
                });
            });
        }