Example #1
0
        private async void OnTapAddNumberPosition(string value)
        {
            Message.HasError  = false;
            Message.ErrorText = "";

            if (_pincode.Length >= Constants.MaxLenthPinCode)
            {
                return;
            }

            _pincode += value.ToString();
            switch (_pincode.Length)
            {
            case 1:
                Number_1.Value = "*";
                break;

            case 2:
                Number_2.Value = "*";
                break;

            case 3:
                Number_3.Value = "*";
                break;

            case 4:
                Number_4.Value = "*";
                break;

            case 5:
                Number_5.Value = "*";
                break;

            default:
                break;
            }
            if (_pincode.Length >= Constants.MaxLenthPinCode)
            {
                if (IsBusy || IsLoading)
                {
                    // Message toast
                    ShowSnackBarWithAction(TranslateManagerHelper.Convert("loading_please_wait"), null, TranslateManagerHelper.Convert("ok").ToUpperInvariant());
                    return;
                }
                IsLoading = true;
                // call service check_pincode

                featureDTO fb = new featureDTO
                {
                    FeatureName    = "CHECK_PINCODE",
                    SenderId       = ApiConstants.CountryPrefix + _userInformation.UserName,
                    SenderPassword = _pincode,
                    TargetId       = "",
                    Amount         = 0,
                    jsonObjString  = ""
                };

                var response = await _checkpincode.Execute <featureDTO, CheckPincodeResponse>(_authentication.GetToken(), fb, ApiConstants.SystemId);

                if (response != null && response.isuccess)
                {
                    _userInformation.SetPassword(_pincode);
                    _userInformation.SetUserId(response.data.Id);
                    _authentication.Connect();
                    CheckPincodeResponse cp = response.data;
                    _userFullName = $"{cp.Fname} {cp.Lname}";
                    foreach (AccountInfo ai in cp.AccountUpdate)
                    {
                        UpdateUserAccount(new AccountModel
                        {
                            AccountNumber = ai.AccountNumber,
                            Balance       = ai.Balance.ToString(),
                            Currency      = ai.CurrencyISO,
                            Type          = ai.AccountType
                        });
                    }

                    if (_userInformationLocalStorage.HasSubscribeNotification)
                    {
                        if (_userInformationLocalStorage.UserForNotification != _userInformation.UserName)
                        {
                            // Call popup message action
                            var parameters = new NavigationParameters
                            {
                                { Constants.PopupId, "NOTIFICATION_ACTIVE_POPUP" },
                                { Constants.PopupMessage, TranslateManagerHelper.Convert("do_you_want").ToUpper() },
                                { Constants.PopupMessage2, TranslateManagerHelper.Convert("to_receive_your_notifications_on_this_device").ToUpper() },
                            };
                            await NavigationService.NavigateAsync(PopupName.MessageWithActionPopup, parameters).ConfigureAwait(false);

                            IsLoading = false;
                            return;
                        }
                    }
                    else
                    {
                        _userInformationLocalStorage.SubscribeNotification(_userInformation.UserName);
                    }

                    await NavigationService.NavigateAsync($"/CustomMasterDetailPageView/NavigationPage/{FunctionName.Home}").ConfigureAwait(false);
                }
                else
                {
                    for (int i = 0; i < 5; i++)
                    {
                        OnTapRemoveNumberPosition();
                    }

                    switch (response?.errcode)
                    {
                    case "EXCEPTION":
                        Message.ErrorText = TranslateManagerHelper.Convert("operation_failed");
                        break;

                    default:
                        Message.ErrorText = !string.IsNullOrEmpty(response?.msg) ? response?.msg : TranslateManagerHelper.Convert("error_occured");
                        break;
                    }
                    Message.HasError = true;
                }

                IsLoading = false;
            }
        }