Example #1
0
        async Task <bool> ShowInWebClick(object sender, EventArgs e)
        {
            if (CardId == 0)
            {
                return(false);
            }
            if (!_methods.IsConnected())
            {
                NoConnectionActivity.ActivityName = this;
                StartActivity(typeof(NoConnectionActivity));
                Finish();
                return(false);
            }
            string resCardData = null;

            try
            {
                resCardData = await _cards.CardDataGet(_databaseMethods.GetAccessJwt(), CardId, clientName);
            }
            catch (Exception ex)
            {
                if (!_methods.IsConnected())
                {
                    NoConnectionActivity.ActivityName = this;
                    StartActivity(typeof(NoConnectionActivity));
                    Finish();
                    return(false);
                }
            }
            if (String.IsNullOrEmpty(resCardData))
            {
                if (!_methods.IsConnected())
                {
                    NoConnectionActivity.ActivityName = this;
                    StartActivity(typeof(NoConnectionActivity));
                    Finish();
                    return(false);
                }
            }
            if (/*res_card_data == Constants.status_code409 || */ resCardData == Constants.status_code401)
            {
                ShowSeveralDevicesRestriction();
                return(false);
            }
            var desCardData = JsonConvert.DeserializeObject <CardsDataModel>(resCardData);
            var uri         = Android.Net.Uri.Parse(desCardData.url);
            var intent      = new Intent(Intent.ActionView, uri);

            StartActivity(intent);
            return(true);
        }
Example #2
0
        protected override async void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            clientName = Android.OS.Build.Manufacturer + " " + Android.OS.Build.Model;
            SetContentView(Resource.Layout.premium);

            Plugin.CurrentActivity.CrossCurrentActivity.Current.Activity = this;

            InitElements();

            if (_databaseMethods.UserExists())
            {
                if (!_methods.IsConnected())
                {
                    NoConnectionActivity.ActivityName = this;
                    StartActivity(typeof(NoConnectionActivity));
                    Finish();
                    return;
                }
                var purchaseInfo = await _accounts.AccountAuthorize(_databaseMethods.GetAccessJwt(), clientName);

                //var deserialized_info = JsonConvert.DeserializeObject<AuthorizeRootObject>(purchase_info);
                AuthorizeAfterPurchase(purchaseInfo);
            }

            FindViewById <RelativeLayout>(Resource.Id.backRL).Click += (s, e) => OnBackPressed();

            _monthBn.Click += async(s, e) =>
            {
                if (!_databaseMethods.UserExists())
                {
                    call_login_menu();
                    return;
                }

                if (!_methods.IsConnected())
                {
                    NoConnectionActivity.ActivityName = this;
                    StartActivity(typeof(NoConnectionActivity));
                    Finish();
                    return;
                }

                _monthActivityIndicator.Visibility = ViewStates.Visible;
                _monthBn.Visibility = ViewStates.Gone;

                string productId = "month_auto_subscription";
                InAppBillingService  inAppBillingService = new InAppBillingService();
                InAppBillingPurchase purchase            = new InAppBillingPurchase();

                var authorizeCheck = await _accounts.AccountAuthorize(_databaseMethods.GetAccessJwt(), clientName);

                if (/*res_card_data == Constants.status_code409 ||*/ authorizeCheck == Constants.status_code401)
                {
                    ShowSeveralDevicesRestriction();
                    return;
                }
                var deserialized = JsonConvert.DeserializeObject <AuthorizeRootObject>(authorizeCheck);
                if (deserialized != null)
                {
                    var jsonObj   = JsonConvert.SerializeObject(new { accountID = deserialized.accountID.ToString() });
                    var textBytes = Encoding.UTF8.GetBytes(jsonObj);
                    var base64    = Convert.ToBase64String(textBytes);

                    if (deserialized.accountID != null)
                    {
                        purchase = await inAppBillingService.PurchaseSubscription(productId, base64);
                    }
                }
                //else
                //purchase = await inAppBillingService.PurchaseSubscription(product_id, String.Empty);
                if (purchase != null)
                {
                    Toast.MakeText(this, TranslationHelper.GetString("waitServerSync", _ci), ToastLength.Short).Show();
                    // Inform our server.

                    var notifyServer = await _accounts.AccountSubscribeAndroid(_databaseMethods.GetAccessJwt(),
                                                                               3,
                                                                               purchase.ProductId,
                                                                               purchase.PurchaseToken);

                    //var notify_server = await accounts.AccountSubscribe(
                    //databaseMethods.GetAccessJwt(),
                    //Constants.personalGoogle.ToString(),
                    //purchase,
                    //DateTime.UtcNow.AddDays(1), // ATTENTION with days.
                    //NativeMethods.GetDeviceId()
                    //);

                    var authorizeCheckAfterPurchase = await _accounts.AccountAuthorize(_databaseMethods.GetAccessJwt(), clientName);

                    AuthorizeAfterPurchase(authorizeCheckAfterPurchase);
                    _monthActivityIndicator.Visibility = ViewStates.Gone;
                    Toast.MakeText(this, TranslationHelper.GetString("syncDoneSuccessfully", _ci), ToastLength.Short).Show();
                    return;
                }
                _monthActivityIndicator.Visibility = ViewStates.Gone;
                _monthBn.Visibility = ViewStates.Visible;
            };

            _yearBn.Click += async(s, e) =>
            {
                if (!_databaseMethods.UserExists())
                {
                    call_login_menu();
                    return;
                }

                if (!_methods.IsConnected())
                {
                    NoConnectionActivity.ActivityName = this;
                    StartActivity(typeof(NoConnectionActivity));
                    Finish();
                    return;
                }

                _yearActivityIndicator.Visibility = ViewStates.Visible;
                _yearBn.Visibility = ViewStates.Gone;

                string productId = "year_auto_subscription";
                InAppBillingService  inAppBillingService = new InAppBillingService();
                InAppBillingPurchase purchase            = new InAppBillingPurchase();

                var authorizeCheck = await _accounts.AccountAuthorize(_databaseMethods.GetAccessJwt(), clientName);

                if (/*res_card_data == Constants.status_code409 ||*/ authorizeCheck == Constants.status_code401)
                {
                    ShowSeveralDevicesRestriction();
                    return;
                }
                var deserialized = JsonConvert.DeserializeObject <AuthorizeRootObject>(authorizeCheck);
                if (deserialized != null)
                {
                    var jsonObj   = JsonConvert.SerializeObject(new { accountID = deserialized.accountID.ToString() });
                    var textBytes = Encoding.UTF8.GetBytes(jsonObj);
                    var base64    = Convert.ToBase64String(textBytes);

                    if (deserialized.accountID != null)
                    {
                        purchase = await inAppBillingService.PurchaseSubscription(productId, base64);
                    }
                }
                //else
                //purchase = await inAppBillingService.PurchaseSubscription(product_id, String.Empty);
                if (purchase != null)
                {
                    Toast.MakeText(this, TranslationHelper.GetString("waitServerSync", _ci), ToastLength.Short).Show();
                    // Inform our server.

                    var notifyServer = await _accounts.AccountSubscribeAndroid(_databaseMethods.GetAccessJwt(),
                                                                               3,
                                                                               purchase.ProductId,
                                                                               purchase.PurchaseToken);

                    //var notify_server = await accounts.AccountSubscribe(
                    //databaseMethods.GetAccessJwt(),
                    //Constants.personalGoogle.ToString(),
                    //purchase,
                    //DateTime.UtcNow.AddDays(1), // ATTENTION with days.
                    //NativeMethods.GetDeviceId()
                    //);

                    var authorizeCheckAfterPurchase = await _accounts.AccountAuthorize(_databaseMethods.GetAccessJwt(), clientName);

                    AuthorizeAfterPurchase(authorizeCheckAfterPurchase);
                    _yearActivityIndicator.Visibility = ViewStates.Gone;
                    Toast.MakeText(this, TranslationHelper.GetString("syncDoneSuccessfully", _ci), ToastLength.Short).Show();
                    return;
                }
                _yearActivityIndicator.Visibility = ViewStates.Gone;
                _yearBn.Visibility = ViewStates.Visible;
            };

            _termsBn.Click += (s, e) =>
            {
                var uri = Android.Net.Uri.Parse("https://myqrcards.com/agreement/ru");
                StartActivity(new Intent(Intent.ActionView, uri));
            };
            _politicsBn.Click += (s, e) =>
            {
                var uri = Android.Net.Uri.Parse("https://myqrcards.com/privacy-policy/ru");
                StartActivity(new Intent(Intent.ActionView, uri));
            };
        }
Example #3
0
        protected override async void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            clientName = Android.OS.Build.Manufacturer + " " + Android.OS.Build.Model;
            SetContentView(Resource.Layout.LoadingLayout);

            InitElements();

            if (!_methods.IsConnected())
            {
                NoConnectionActivity.ActivityName = this;
                StartActivity(typeof(NoConnectionActivity));
                Finish();
                return;
            }
            HttpResponseMessage res = null;

            try
            {
                res = await _cards.CardDelete(_databaseMethods.GetAccessJwt(), Convert.ToInt32(CardId), clientName);
            }
            catch (Exception ex)
            {
                if (!_methods.IsConnected())
                {
                    NoConnectionActivity.ActivityName = this;
                    StartActivity(typeof(NoConnectionActivity));
                    Finish();
                    return;
                }
            }
            if (res == null)
            {
                if (!_methods.IsConnected())
                {
                    NoConnectionActivity.ActivityName = this;
                    StartActivity(typeof(NoConnectionActivity));
                    Finish();
                    return;
                }
            }
            NativeMethods.ResetSocialNetworkList();


            if (res.StatusCode.ToString().Contains("401") || res.StatusCode.ToString().ToLower().Contains(Constants.status_code401))
            {
                RunOnUiThread(() =>
                {
                    ShowSeveralDevicesRestriction();
                    return;
                });
                return;
            }
            CardId = null;
            RunOnUiThread(() =>
            {
                _databaseMethods.InsertLastCloudSync(DateTime.Now);
                OnBackPressed();
            });

            //backBn.TouchUpInside += (s, e) =>
            //{
            //    this.NavigationController.PopViewController(true);
            //};
        }
Example #4
0
        protected override async void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            SetContentView(Resource.Layout.edit);
            clientName = Android.OS.Build.Manufacturer + " " + Android.OS.Build.Model;
            try { EditPersonalImageAdapter.Photos.Clear(); } catch { }
            EditCompanyDataActivity.ChangedCompanyData             = false;
            FindViewById <TextView>(Resource.Id.companyTV).Click  += (s, e) => StartActivity(typeof(EditCompanyDataActivity));
            FindViewById <TextView>(Resource.Id.personalTV).Click += (s, e) =>
            {
                if (FindViewById <Switch>(Resource.Id.switchSw).Checked)
                {
                    EditPersonalDataActivity.IsPrimary = true;
                }
                else
                {
                    EditPersonalDataActivity.IsPrimary = false;
                }
                StartActivity(typeof(EditPersonalDataActivity));
            };
            FindViewById <Switch>(Resource.Id.switchSw).CheckedChange += (s, e) =>
            {
                if (_desCardData != null)
                {
                    if (!_desCardData.isPrimary)
                    {
                        if (FindViewById <Switch>(Resource.Id.switchSw).Checked)
                        {
                            EditPersonalProcessActivity.FromPrimarySet = true;;
                            EditPersonalDataActivity.IsPrimary         = true;
                            QrActivity.ClickedPosition = 0;
                            QrActivity.CurrentPosition = 0;
                            cache_data();
                            StartActivity(typeof(EditPersonalProcessActivity));
                        }
                    }
                }
            };
            FindViewById <RelativeLayout>(Resource.Id.backRL).Click += (s, e) => OnBackPressed();

            EditPersonalImageAdapter.Photos?.Clear();
            InitElements();

            if (!_methods.IsConnected())
            {
                NoConnectionActivity.ActivityName = this;
                StartActivity(typeof(NoConnectionActivity));
                Finish();
                return;
            }
            ClearAll();
            string resCardData = null;

            try
            {
                resCardData = await _cards.CardDataGet(_databaseMethods.GetAccessJwt(), CardId, clientName);
            }
            catch (Exception ex)
            {
                if (!_methods.IsConnected())
                {
                    NoConnectionActivity.ActivityName = this;
                    StartActivity(typeof(NoConnectionActivity));
                    Finish();
                    return;
                }
            }
            if (String.IsNullOrEmpty(resCardData))
            {
                if (!_methods.IsConnected())
                {
                    NoConnectionActivity.ActivityName = this;
                    StartActivity(typeof(NoConnectionActivity));
                    Finish();
                    return;
                }
            }
            if (/*res_card_data == Constants.status_code409 ||*/ resCardData == Constants.status_code401)
            {
                ShowSeveralDevicesRestriction();
                return;
            }
            _desCardData = JsonConvert.DeserializeObject <CardsDataModel>(resCardData);

            IsCompanyReadOnly = false;

            try { IsCompanyReadOnly = _desCardData.employment.company.isReadOnly; } catch { }
            // TODO
            //IsCompanyReadOnly = true;

            await FillVariables();

            _loadingLl.Visibility = ViewStates.Gone;
            //mainTextTV.Hidden = true;
            //activityIndicator.Hidden = true;
            //emailLogo.Hidden = true;
            //switchSw.Hidden = false;
            //makeMainBn.Hidden = false;
            //company_forw_bn.Hidden = false;
            //aboutCompanyBn.Hidden = false;
            //personal_forw_bn.Hidden = false;
            //personalDataBn.Hidden = false;
        }
        protected override async void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            clientName = Android.OS.Build.Manufacturer + " " + Android.OS.Build.Model;
            SetContentView(Resource.Layout.creating_card);
            Typeface tf = Typeface.CreateFromAsset(Assets, "FiraSansRegular.ttf");

            InitElements(tf);

            FindViewById <RelativeLayout>(Resource.Id.backRL).Click += (s, e) => OnBackPressed();
            if (!_methods.IsConnected())
            {
                NoConnectionActivity.ActivityName = this;
                StartActivity(typeof(NoConnectionActivity));
                Finish();
                return;
            }
            string resCardsList = "";

            _loadingLl.Visibility = ViewStates.Visible;
            try
            {
                resCardsList = await _cards.CardsListGet(_databaseMethods.GetAccessJwt(), clientName);
            }
            catch (Exception ex)
            {
                if (!_methods.IsConnected())
                {
                    NoConnectionActivity.ActivityName = this;
                    StartActivity(typeof(NoConnectionActivity));
                    Finish();
                    return;
                }
            }
            if (String.IsNullOrEmpty(resCardsList))
            {
                if (!_methods.IsConnected())
                {
                    NoConnectionActivity.ActivityName = this;
                    StartActivity(typeof(NoConnectionActivity));
                    Finish();
                    return;
                }
            }
            if (/*res_card_data == Constants.status_code409 ||*/ resCardsList == Constants.status_code401)
            {
                ShowSeveralDevicesRestriction();
                return;
            }

            _deserializedCardsList = JsonConvert.DeserializeObject <List <CardListModel> >(resCardsList);

            _reverseList          = _deserializedCardsList.AsEnumerable().Reverse().ToList();
            Datalist              = _reverseList;
            _loadingLl.Visibility = ViewStates.Gone;
            var cardNames = new List <CreatingCardModel>();

            foreach (var item in _reverseList)
            {
                cardNames.Add(new CreatingCardModel {
                    Id = item.id, CardName = item.name
                });
            }

            _createNewBn.Click += (s, e) =>
            {
                ClearData();
                StartActivity(typeof(PersonalDataActivity));
            };

            _creatingCardAdapter = new CreatingCardAdapter(this, cardNames, tf);
            _recyclerView.SetAdapter(_creatingCardAdapter);
        }
        protected override async void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            clientName = Android.OS.Build.Manufacturer + " " + Android.OS.Build.Model;
            SetContentView(Resource.Layout.LoadingLayout);
            InitElements();
            if (!_methods.IsConnected())
            {
                NoConnectionActivity.ActivityName = this;
                StartActivity(typeof(NoConnectionActivity));
                Finish();
                return;
            }

            #region uploading photos
            bool photosExist    = true;
            var  personalImages = await _nativeMethods.GetPersonalImages();

            if (personalImages == null)
            {
                photosExist = false;
            }
            else
            {
                photosExist = true;
            }
            var documentsLogo = await _nativeMethods.GetDocumentsLogo();

            if (documentsLogo != null)
            {
                photosExist = true;
            }
            int?       logoId             = null;
            List <int> attachmentsIdsList = new List <int>();
            if (photosExist)
            {
                _mainTextTv.Text = TranslationHelper.GetString("photosAreBeingUploaded", _ci);
                AttachmentsUploadModel resPhotos = null;
                try
                {
                    resPhotos = await _attachments.UploadAndroid(_databaseMethods.GetAccessJwt(), clientName, personalImages, documentsLogo);
                }
                catch (Exception ex)
                {
                    if (!_methods.IsConnected())
                    {
                        NoConnectionActivity.ActivityName = this;
                        StartActivity(typeof(NoConnectionActivity));
                        Finish();
                        return;
                    }
                }
                if (resPhotos == null)
                {
                    if (!_methods.IsConnected())
                    {
                        NoConnectionActivity.ActivityName = this;
                        StartActivity(typeof(NoConnectionActivity));
                        Finish();
                        return;
                    }
                }
                if (resPhotos != null)
                {
                    //var deserialized_logo = JsonConvert.DeserializeObject<CompanyLogoModel>(res_photos);
                    logoId             = resPhotos.logo_id;
                    attachmentsIdsList = resPhotos.attachments_ids;
                    if (logoId == Constants.image_upload_status_code401)
                    {
                        ShowSeveralDevicesRestriction();
                        return;
                    }
                }
            }
            _mainTextTv.Text = TranslationHelper.GetString("cardIsSynchronizing", _ci);
            #endregion uploading photos

            //var temp_ids = new List<int>();//EditActivity.ids_of_attachments;//.AddRange(attachments_ids_list);
            //temp_ids.AddRange(attachments_ids_list);
            HttpResponseMessage resUser = null;
            try
            {
                if (!EditPersonalDataActivity.IsPrimary && !FromPrimarySet)
                {
                    resUser = await _cards.CardUpdate(_databaseMethods.GetAccessJwt(),
                                                      EditActivity.CardId,
                                                      _databaseMethods.GetDataFromUsersCard(CompanyId, _databaseMethods.GetLastSubscription(), EditCompanyDataActivity.Position, EditCompanyDataActivity.CorporativePhone),
                                                      EditPersonalDataActivity.IsPrimary,
                                                      GetPersonalNetworks(),
                                                      //temp_ids);
                                                      attachmentsIdsList,
                                                      clientName);
                }
                else if (EditPersonalDataActivity.IsPrimary && FromPrimarySet)
                {
                    resUser = await _cards.CardUpdate(_databaseMethods.GetAccessJwt(),
                                                      EditActivity.CardId,
                                                      _databaseMethods.GetDataFromUsersCard(CompanyId, _databaseMethods.GetLastSubscription(), EditCompanyDataActivity.Position, EditCompanyDataActivity.CorporativePhone),
                                                      EditPersonalDataActivity.IsPrimary,
                                                      GetPersonalNetworks(),
                                                      //temp_ids);
                                                      //attachments_ids_list);
                                                      EditActivity.IdsOfAttachments,
                                                      clientName);

                    FromPrimarySet = false;
                }
                else
                {
                    resUser = await _cards.CardUpdate(_databaseMethods.GetAccessJwt(),
                                                      EditActivity.CardId,
                                                      _databaseMethods.GetDataFromUsersCard(CompanyId, _databaseMethods.GetLastSubscription(), EditCompanyDataActivity.Position, EditCompanyDataActivity.CorporativePhone),
                                                      EditPersonalDataActivity.IsPrimary,
                                                      GetPersonalNetworks(),
                                                      //temp_ids);
                                                      attachmentsIdsList,
                                                      clientName);
                }
                //EditActivity.ids_of_attachments);
            }
            catch (Exception ex)
            {
                if (!_methods.IsConnected())
                {
                    NoConnectionActivity.ActivityName = this;
                    StartActivity(typeof(NoConnectionActivity));
                    Finish();
                    return;
                }
            }
            if (resUser == null)
            {
                if (!_methods.IsConnected())
                {
                    NoConnectionActivity.ActivityName = this;
                    StartActivity(typeof(NoConnectionActivity));
                    Finish();
                    return;
                }
            }
            if (resUser.StatusCode.ToString().Contains("401") || resUser.StatusCode.ToString().ToLower().Contains(Constants.status_code401))
            {
                ShowSeveralDevicesRestriction();
                return;
            }

            await Clear();

            StartActivity(typeof(QrActivity));
        }
        async Task <bool> Sync()
        {
            //caching card to db
            _databaseMethods.InsertUsersCard(
                EditPersonalDataActivity.MyName,
                EditPersonalDataActivity.MySurname,
                EditPersonalDataActivity.MyMiddlename,
                EditPersonalDataActivity.MyPhone,
                EditPersonalDataActivity.MyEmail,
                EditPersonalDataActivity.MyHomePhone,
                EditPersonalDataActivity.MySite,
                EditPersonalDataActivity.MyDegree,
                EditPersonalDataActivity.MyCardName,
                EditPersonalDataActivity.MyBirthDate,
                HomeAddressActivity.MyCountry,
                HomeAddressActivity.MyRegion,
                HomeAddressActivity.MyCity,
                HomeAddressActivity.FullAddressStatic,
                HomeAddressActivity.MyIndex,
                HomeAddressActivity.MyNotation,
                NewCardAddressMapActivity.Lat,
                NewCardAddressMapActivity.Lng,
                true
                );
            HttpResponseMessage res = null;

            try
            {
                res = await _cards.CardUpdate(_databaseMethods.GetAccessJwt(),
                                              EditActivity.CardId,
                                              _databaseMethods.GetDataFromUsersCard(null,
                                                                                    _databaseMethods.GetLastSubscription(),
                                                                                    EditCompanyDataActivity.Position, EditCompanyDataActivity.CorporativePhone),
                                              EditPersonalDataActivity.IsPrimary,
                                              GetPersonalNetworks(),
                                              EditActivity.IdsOfAttachments,
                                              clientName);
            }
            catch (Exception ex)
            {
                if (!_methods.IsConnected())
                {
                    NoConnectionActivity.ActivityName = this;
                    StartActivity(typeof(NoConnectionActivity));
                    Finish();
                    return(false);
                }
            }
            if (res == null)
            {
                if (!_methods.IsConnected())
                {
                    NoConnectionActivity.ActivityName = this;
                    StartActivity(typeof(NoConnectionActivity));
                    Finish();
                    return(false);
                }
            }
            if (res.StatusCode.ToString().Contains("401") || res.StatusCode.ToString().ToLower().Contains(Constants.status_code401))
            {
                ShowSeveralDevicesRestriction();
                return(false);
            }

            ClearAll();

            try
            {
                StartActivity(typeof(QrActivity));
                //var vc_list = this.NavigationController.ViewControllers.ToList();
                //try { vc_list.RemoveAt(vc_list.Count - 2); } catch { }
                //this.NavigationController.ViewControllers = vc_list.ToArray();
            }
            catch { }
            return(true);
        }
        async void HandleScanResult(ZXing.Result result)
        {
            HttpResponseMessage res = null;

            if (result != null && !string.IsNullOrEmpty(result.Text))
            {
                if (!result.Text.ToLower().Contains("https"))
                {
                    CallAlert(TranslationHelper.GetString("wrongQr", GetCurrentCulture.GetCurrentCultureInfo()));
                    return;
                }
                if (!result.Text.ToLower().Contains("card.myqrcards.com/links/"))
                {
                    CallAlert(TranslationHelper.GetString("wrongQr", GetCurrentCulture.GetCurrentCultureInfo()));
                    return;
                }
                try
                {
                    var scannedString = result.Text;

                    string cardLinkID = "";
                    try
                    {
                        var splitted = scannedString.Split("/");
                        var count    = scannedString.Count(x => x == '/');
                        cardLinkID = splitted[count];
                        if (string.IsNullOrEmpty(cardLinkID))
                        {
                            cardLinkID = splitted[count - 1];
                        }
                    }
                    catch
                    {
                        //CallAlert();
                    }
                    _linkStickerBn.Visibility     = ViewStates.Gone;
                    _orderBn.Visibility           = ViewStates.Gone;
                    _activityIndicator.Visibility = ViewStates.Visible;
                    res = await _cardLinks.CardsLinksGet(_databaseMethods.GetAccessJwt(), clientName, cardLinkID);

                    _linkStickerBn.Visibility     = ViewStates.Visible;
                    _orderBn.Visibility           = ViewStates.Visible;
                    _activityIndicator.Visibility = ViewStates.Gone;

                    if (res?.StatusCode == System.Net.HttpStatusCode.Conflict)
                    {
                        CallAlert(TranslationHelper.GetString("thisQrCannotBeUsedAsCard", GetCurrentCulture.GetCurrentCultureInfo()));
                        return;
                    }
                    if (res?.StatusCode == System.Net.HttpStatusCode.NotFound)
                    {
                        CallAlert(TranslationHelper.GetString("thisQrCannotBeUsedAsCard", GetCurrentCulture.GetCurrentCultureInfo()));
                        return;
                    }
                    if (res?.StatusCode == System.Net.HttpStatusCode.Forbidden)
                    {
                        CallAlert(TranslationHelper.GetString("thisQrAlreadyBelongsToAnotherUser", GetCurrentCulture.GetCurrentCultureInfo()), orderButtonShown: false);
                        return;
                    }
                    if (res?.StatusCode == System.Net.HttpStatusCode.OK)
                    {
                        var content = await res.Content.ReadAsStringAsync();

                        var deserialized = JsonConvert.DeserializeObject <CardLinkModel>(content);
                        if (CardId == deserialized?.card?.id)
                        {
                            CallAlert(TranslationHelper.GetString("qrAlreadyLinkedToThisCard", GetCurrentCulture.GetCurrentCultureInfo()), orderButtonShown: false);
                            return;
                        }
                        if (CardId != deserialized?.card?.id && deserialized?.isDefault == false)
                        {
                            CallAlert($"{TranslationHelper.GetString("qrAlreadyLinkedToCard", GetCurrentCulture.GetCurrentCultureInfo())} {deserialized?.card?.name}. {TranslationHelper.GetString("rebind", GetCurrentCulture.GetCurrentCultureInfo())}", cardLinkID);
                            return;
                        }
                        if (deserialized?.isDefault == false)
                        {
                            CallAlert(TranslationHelper.GetString("impossibleToLinkMainQr", GetCurrentCulture.GetCurrentCultureInfo()));
                            return;
                        }
                    }
                    if (res?.StatusCode == System.Net.HttpStatusCode.NoContent)
                    {
                        await LinkCard(cardLinkID);
                    }
                }
                catch (Exception ex)
                {
                    if (!_methods.IsConnected())
                    {
                        NoConnectionActivity.ActivityName = this;
                        StartActivity(typeof(NoConnectionActivity));
                        Finish();
                        return;
                    }
                }
            }
            else
            {
                return;
            }
        }
        private async Task <bool> CreateCardProcess()
        {
            #region uploading photos
            bool photosExist    = true;
            var  personalImages = _nativeMethods.GetPersonalImages();
            if (personalImages.Result == null)
            {
                photosExist = false;
            }
            else
            {
                photosExist = true;
            }
            var documentsLogo = _nativeMethods.GetDocumentsLogo();
            if (documentsLogo.Result != null)
            {
                photosExist = true;
            }
            int?       logoId             = null;
            List <int> attachmentsIdsList = new List <int>();
            if (photosExist)
            {
                _mainTextTv.Text = TranslationHelper.GetString("photosAreBeingUploaded", _ci);
                AttachmentsUploadModel resPhotos = null;
                try
                {
                    resPhotos = await _attachments.UploadAndroid(_databaseMethods.GetAccessJwt(), clientName, personalImages.Result, documentsLogo.Result);
                }
                catch (Exception ex)
                {
                    if (!_methods.IsConnected())
                    {
                        NoConnectionActivity.ActivityName = this;
                        StartActivity(typeof(NoConnectionActivity));
                        Finish();
                        return(false);
                    }
                }
                if (resPhotos == null)
                {
                    if (!_methods.IsConnected())
                    {
                        NoConnectionActivity.ActivityName = this;
                        StartActivity(typeof(NoConnectionActivity));
                        Finish();
                        return(false);
                    }
                }

                if (resPhotos != null)
                {
                    //var deserialized_logo = JsonConvert.DeserializeObject<CompanyLogoModel>(res_photos);
                    logoId             = resPhotos.logo_id;
                    attachmentsIdsList = resPhotos.attachments_ids;
                    if (logoId == Constants.image_upload_status_code401)
                    {
                        ShowSeveralDevicesRestriction();
                        return(false);
                    }
                }
            }
            #endregion uploading photos
            _mainTextTv.Text = TranslationHelper.GetString("cardIsSynchronizing", _ci);
            string companyCardRes = "";
            if (!CompanyDataActivity.CompanyNull)
            {
                try
                {
                    if (logoId != null)
                    {
                        companyCardRes = await _companies.CreateCompanyCard(_databaseMethods.GetAccessJwt(), clientName, _databaseMethods.GetDataFromCompanyCard(), logoId);
                    }
                    else
                    {
                        companyCardRes = await _companies.CreateCompanyCard(_databaseMethods.GetAccessJwt(), clientName, _databaseMethods.GetDataFromCompanyCard());
                    }
                }
                catch (Exception ex)
                {
                    if (!_methods.IsConnected())
                    {
                        NoConnectionActivity.ActivityName = this;
                        StartActivity(typeof(NoConnectionActivity));
                        Finish();
                        return(false);
                    }
                }
                if (String.IsNullOrEmpty(companyCardRes))
                {
                    if (!_methods.IsConnected())
                    {
                        NoConnectionActivity.ActivityName = this;
                        StartActivity(typeof(NoConnectionActivity));
                        Finish();
                        return(false);
                    }
                }
                if (companyCardRes == Constants.image_upload_status_code401.ToString())
                {
                    ShowSeveralDevicesRestriction();
                    return(false);
                }
            }
            try
            {
                string userCardRes = null;
                try
                {
                    if (!CompanyDataActivity.CompanyNull)
                    {
                        var deserialized = JsonConvert.DeserializeObject <CompanyCardResponse>(companyCardRes);
                        userCardRes = await _cards.CreatePersonalCard(_databaseMethods.GetAccessJwt(),
                                                                      _databaseMethods.GetDataFromUsersCard(deserialized.id,
                                                                                                            _databaseMethods.GetLastSubscription(),
                                                                                                            EditCompanyDataActivity.Position,
                                                                                                            EditCompanyDataActivity.CorporativePhone),
                                                                      attachmentsIdsList,
                                                                      clientName);
                    }
                    else
                    {
                        userCardRes = await _cards.CreatePersonalCard(_databaseMethods.GetAccessJwt(),
                                                                      _databaseMethods.GetDataFromUsersCard(null,
                                                                                                            _databaseMethods.GetLastSubscription(),
                                                                                                            EditCompanyDataActivity.Position,
                                                                                                            EditCompanyDataActivity.CorporativePhone),
                                                                      attachmentsIdsList,
                                                                      clientName);
                    }
                }
                catch (Exception ex)
                {
                    if (!_methods.IsConnected())
                    {
                        NoConnectionActivity.ActivityName = this;
                        StartActivity(typeof(NoConnectionActivity));
                        Finish();
                        return(false);
                    }
                }
                if (String.IsNullOrEmpty(userCardRes))
                {
                    if (!_methods.IsConnected())
                    {
                        NoConnectionActivity.ActivityName = this;
                        StartActivity(typeof(NoConnectionActivity));
                        Finish();
                        return(false);
                    }
                }
                if (userCardRes == Constants.image_upload_status_code401.ToString())
                {
                    ShowSeveralDevicesRestriction();
                    return(false);
                }
                try
                {
                    var usersCardDes = JsonConvert.DeserializeObject <CompanyCardResponse>(userCardRes);
                    PersonalCardId = usersCardDes.id;
                    QrActivity.JustCreatedCardName = _databaseMethods.get_card_name();
                    _nativeMethods.ClearAll();

                    CardDoneActivity.CardId = PersonalCardId;
                    //CardDoneViewController.variant_displaying = 1;

                    _databaseMethods.InsertLastCloudSync(DateTime.Now);
                    ClearAll();
                    StartActivity(typeof(CardDoneActivity));
                }
                catch
                {
                    try
                    {
                        var deserializedError = JsonConvert.DeserializeObject <List <CreateCompanyErrorModel> >(userCardRes);
                        //if (deserialized_error[0].message == Constants.alreadyDone)
                        if (deserializedError[0].code == Constants.alreadyDone)
                        {
                            Toast.MakeText(this, TranslationHelper.GetString("cardWithThisNameExists", _ci), ToastLength.Long).Show();
                        }
                    }
                    catch { }
                    Pop();
                }
            }
            catch (Exception ex)
            {
                try
                {
                    var deserializedError = JsonConvert.DeserializeObject <List <CreateCompanyErrorModel> >(companyCardRes);
                    if (deserializedError != null)
                    {
                        Toast.MakeText(this, deserializedError[0].message, ToastLength.Long).Show();
                        Pop();
                    }
                    else
                    {
                        Toast.MakeText(this, TranslationHelper.GetString("tryOnceMore", _ci), ToastLength.Long).Show();
                        OnBackPressed();
                    }
                }
                catch { }
                //StartActivity(typeof(CardDoneActivity));
            }
            return(true);
        }
        protected override async void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            SetContentView(Resource.Layout.LoadingLayout);
            clientName = Android.OS.Build.Manufacturer + " " + Android.OS.Build.Model;
            InitElements();
            if (!_methods.IsConnected())
            {
                NoConnectionActivity.ActivityName = this;
                StartActivity(typeof(NoConnectionActivity));
                Finish();
                return;
            }

            if (!EditCompanyDataActivity.ChangedCompanyData)
            {
                goto DoPersonalStuff;
            }

            #region uploading photos
            bool photosExist    = true;
            var  personalImages = await _nativeMethods.GetPersonalImages();

            if (personalImages == null)
            {
                photosExist = false;
            }
            else
            {
                photosExist = true;
            }
            var documentsLogo = await _nativeMethods.GetDocumentsLogo();

            if (documentsLogo != null)
            {
                photosExist = true;
            }
            int?       logoId             = null;
            List <int> attachmentsIdsList = new List <int>();
            if (photosExist)
            {
                _mainTextTv.Text = TranslationHelper.GetString("photosAreBeingUploaded", _ci);
                AttachmentsUploadModel resPhotos = null;
                try
                {
                    resPhotos = await _attachments.UploadAndroid(_databaseMethods.GetAccessJwt(), clientName, personalImages, documentsLogo);
                }
                catch (Exception ex)
                {
                    if (!_methods.IsConnected())
                    {
                        NoConnectionActivity.ActivityName = this;
                        StartActivity(typeof(NoConnectionActivity));
                        Finish();
                        return;
                    }
                }
                if (resPhotos == null)
                {
                    if (!_methods.IsConnected())
                    {
                        NoConnectionActivity.ActivityName = this;
                        StartActivity(typeof(NoConnectionActivity));
                        Finish();
                        return;
                    }
                }
                if (resPhotos != null)
                {
                    //var deserialized_logo = JsonConvert.DeserializeObject<CompanyLogoModel>(res_photos);
                    logoId             = resPhotos.logo_id;
                    attachmentsIdsList = resPhotos.attachments_ids;
                    if (logoId == Constants.image_upload_status_code401)
                    {
                        ShowSeveralDevicesRestriction();
                        return;
                    }
                }
            }
            _mainTextTv.Text = TranslationHelper.GetString("cardIsSynchronizing", _ci);
            #endregion uploading photos
            string resCompany = null;
            try
            {
                if (logoId != null)
                {
                    if (EditPersonalProcessActivity.CompanyId != null)
                    {
                        resCompany = await _companies.UpdateCompanyCard(_databaseMethods.GetAccessJwt(), clientName, _databaseMethods.GetDataFromCompanyCard(), EditPersonalProcessActivity.CompanyId, logoId);
                    }
                    else
                    {
                        resCompany = await _companies.CreateCompanyCard(_databaseMethods.GetAccessJwt(), clientName, _databaseMethods.GetDataFromCompanyCard(), logoId);
                    }
                }
                else
                {
                    if (EditPersonalProcessActivity.CompanyId != null)
                    {
                        resCompany = await _companies.UpdateCompanyCard(_databaseMethods.GetAccessJwt(), clientName, _databaseMethods.GetDataFromCompanyCard(), EditPersonalProcessActivity.CompanyId);
                    }
                    else
                    {
                        resCompany = await _companies.CreateCompanyCard(_databaseMethods.GetAccessJwt(), clientName, _databaseMethods.GetDataFromCompanyCard());
                    }
                }
            }
            catch (Exception ex)
            {
                if (!_methods.IsConnected())
                {
                    NoConnectionActivity.ActivityName = this;
                    StartActivity(typeof(NoConnectionActivity));
                    Finish();
                    return;
                }
            }
            if (String.IsNullOrEmpty(resCompany))
            {
                if (!_methods.IsConnected())
                {
                    NoConnectionActivity.ActivityName = this;
                    StartActivity(typeof(NoConnectionActivity));
                    Finish();
                    return;
                }
            }
            if (resCompany == Constants.image_upload_status_code401.ToString())
            {
                ShowSeveralDevicesRestriction();
                return;
            }
            try
            {
                var deserialized = JsonConvert.DeserializeObject <CompanyCardResponse>(resCompany);
            }
            catch
            {
                _databaseMethods.ClearCompanyCardTable();
                var deserializedError = JsonConvert.DeserializeObject <List <CreateCompanyErrorModel> >(resCompany);
                Toast.MakeText(this, TranslationHelper.GetString("errorInCompanyData", _ci), ToastLength.Long).Show();
                base.OnBackPressed();
                return;
            }

            if (resCompany.Contains("id") && resCompany.Length < 12)
            {
                EditPersonalProcessActivity.CompanyId = Convert.ToInt32(JsonConvert.DeserializeObject <CompanyCardResponse>(resCompany).id);
            }
DoPersonalStuff:
            //caching card to db
            _databaseMethods.InsertUsersCard(
                EditPersonalDataActivity.MyName,
                EditPersonalDataActivity.MySurname,
                EditPersonalDataActivity.MyMiddlename,
                EditPersonalDataActivity.MyPhone,
                EditPersonalDataActivity.MyEmail,
                EditPersonalDataActivity.MyHomePhone,
                EditPersonalDataActivity.MySite,
                EditPersonalDataActivity.MyDegree,
                EditPersonalDataActivity.MyCardName,
                EditPersonalDataActivity.MyBirthDate,
                HomeAddressActivity.MyCountry,
                HomeAddressActivity.MyRegion,
                HomeAddressActivity.MyCity,
                HomeAddressActivity.FullAddressStatic,
                HomeAddressActivity.MyIndex,
                HomeAddressActivity.MyNotation,
                NewCardAddressMapActivity.Lat,
                NewCardAddressMapActivity.Lng,
                true
                );
            HttpResponseMessage res = null;
            try
            {
                res = await _cards.CardUpdate(_databaseMethods.GetAccessJwt(),
                                              EditActivity.CardId,
                                              _databaseMethods.GetDataFromUsersCard(EditPersonalProcessActivity.CompanyId,
                                                                                    _databaseMethods.GetLastSubscription(),
                                                                                    EditCompanyDataActivity.Position, EditCompanyDataActivity.CorporativePhone),
                                              EditPersonalDataActivity.IsPrimary,
                                              GetPersonalNetworks(),
                                              EditActivity.IdsOfAttachments,
                                              clientName);
            }
            catch (Exception ex)
            {
                if (!_methods.IsConnected())
                {
                    NoConnectionActivity.ActivityName = this;
                    StartActivity(typeof(NoConnectionActivity));
                    Finish();
                    return;
                }
            }
            if (res == null)
            {
                if (!_methods.IsConnected())
                {
                    NoConnectionActivity.ActivityName = this;
                    StartActivity(typeof(NoConnectionActivity));
                    Finish();
                    return;
                }
            }
            if (res.StatusCode.ToString().Contains("401") || res.StatusCode.ToString().ToLower().Contains(Constants.status_code401))
            {
                ShowSeveralDevicesRestriction();
                return;
            }

            await Clear();

            try
            {
                StartActivity(typeof(QrActivity));
                //var vc_list = this.NavigationController.ViewControllers.ToList();
                //try { vc_list.RemoveAt(vc_list.Count - 2); } catch { }
                //this.NavigationController.ViewControllers = vc_list.ToArray();
            }
            catch { }
        }