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(); } } } }
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}"); } }); }); }