Beispiel #1
0
        private async void DisplayQrCode(GiftCardModel GiftCardModel)
        {
            if (IsBusy || IsLoading)
            {
                // message toast
                ShowSnackBarWithAction(TranslateManagerHelper.Convert("loading_please_wait"), null, TranslateManagerHelper.Convert("ok").ToUpperInvariant());
                return;
            }
            IsLoading = true;

            QRCodeGiftKardData obj = JsonConvert.DeserializeObject <QRCodeGiftKardData>(GiftCardModel.QRCodeData);

            obj.Number = GiftCardModel.GiftCardNumber;
            obj.Amount = GiftCardModel.Amount;

            // call genreate qrcode service
            var qrcodedata = new QRcodeRequest();

            qrcodedata.Type       = "Text";
            qrcodedata.Separator  = string.Empty;
            qrcodedata.Parameters = new List <KeyValuePair <string, string> >
            {
                new KeyValuePair <string, string>("QRCodeData", JsonConvert.SerializeObject(obj))
            };

            /*
             * Call Simple API here
             */
            var qc = await _qRCode.Generate <QRcodeRequest>(_authentication.GetToken(), qrcodedata);

            if (qc == null || qc?.isuccess == false)
            {
                string message = "";
                switch (qc?.errcode)
                {
                case "EXCEPTION":
                    TranslateManagerHelper.Convert("error_occured");
                    break;

                default:
                    message = !string.IsNullOrEmpty(qc?.msg) ? qc.msg : TranslateManagerHelper.Convert("qrcode_error_occured");
                    break;
                }

                var parameters = new NavigationParameters
                {
                    { Constants.PopupIsSucces, false },
                    { Constants.PopupMessage, message },
                    { Constants.PopupIsBeforeHome, false },
                    { Constants.PopupNextPage, "" }
                };
                await NavigationService.NavigateAsync(PopupName.SuccessfullPopup, parameters).ConfigureAwait(false);

                IsLoading = false;
                return;
            }

            var qrImage = Xamarin.Forms.ImageSource.FromStream(
                () => new MemoryStream(Convert.FromBase64String(qc.data)));

            var data = new DisplayQrCodeModel()
            {
                Code1 = GiftCardModel.GiftCardNumber,
                //Code2 = GiftCardModel.Amount,
                //Currency = obj.Currency,
                IsDisplayIcon = false,
                QrCodeImage   = qrImage,
                Title         = TranslateManagerHelper.Convert("scan_me"),
                HigthTitle    = TranslateManagerHelper.Convert("gift_card"),
                CompanyId     = obj.CompanyId,
                CompanyName   = obj.CompanyName
            };

            var Parameters = new NavigationParameters()
            {
                { Constants.QrCodeId, "DISPLAY_QRCODE" },
                { Constants.QrCodeResponseData, data }
            };

            await NavigationService.NavigateAsync(FunctionName.GenerateQrCode, Parameters);

            IsLoading = false;
        }
Beispiel #2
0
        private async void DoService(bool ok)
        {
            if (!ok)
            {
                return;
            }

            if (IsBusy || IsLoading)
            {
                // message toast
                ShowSnackBarWithAction(TranslateManagerHelper.Convert("loading_please_wait"), null, TranslateManagerHelper.Convert("ok").ToUpperInvariant());
                return;
            }
            IsLoading = true;


            var data = new QRCodeGiftKardData
            {
                SystemId    = ApiConstants.SystemId,
                Amount      = Amount.Value,
                PhoneNumber = ApiConstants.CountryPrefix + ReceiverPhoneNumber.Value,
                Currency    = _accountSelected.Currency,
                CompanyId   = !string.IsNullOrEmpty(Merchant.Id) ? Merchant.Id : "",
                CompanyName = !string.IsNullOrEmpty(Merchant.Value) ? Merchant.Value : ""
            };

            GiftCardCreationRequest cash = new GiftCardCreationRequest
            {
                SourceAccountNumber = _accountSelected.AccountNumber,
                QrCode = JsonConvert.SerializeObject(data)
            };

            featureDTO f = new featureDTO
            {
                FeatureName    = "GIFT_CARD_CREATE",
                Amount         = decimal.Parse(Amount.Value),
                SenderId       = ApiConstants.CountryPrefix + _userInformation.UserName,
                SenderPassword = _userInformation.Password,
                TargetId       = ApiConstants.CountryPrefix + ReceiverPhoneNumber.Value,
                jsonObjString  = JsonConvert.SerializeObject(cash)
            };

            var result = await _giftcardservice.Execute <featureDTO, GiftCardCreationResponse>(_authentication.GetToken(), f, ApiConstants.SystemId);

            NavigationParameters parameters = null;
            string message   = "";
            bool   isSuccess = false;

            if (result != null)
            {
                if (result.isuccess)
                {
                    isSuccess = true;
                    message   = TranslateManagerHelper.Convert("operation_successfully");
                    // init value
                    var ai = result.data.AccountUpdate;
                    UpdateUserAccount(new AccountModel
                    {
                        AccountNumber = ai.AccountNumber,
                        Balance       = ai.Balance.ToString(),
                        Currency      = ai.CurrencyISO,
                        Type          = ai.AccountType,
                    });
                    InitializeInput();
                    GoBacckToStpe1();
                }
                else
                {
                    switch (result.errcode)
                    {
                    case "EXCEPTION":
                        message = TranslateManagerHelper.Convert("operation_failed");
                        break;

                    default:
                        message = !string.IsNullOrEmpty(result.msg) ? result.msg : TranslateManagerHelper.Convert("cashin_failed");
                        break;
                    }

                    isSuccess = false;
                }
            }
            else
            {
                // TODO : what message do we send ?
                isSuccess = false;

                switch (result.errcode)
                {
                case "EXCEPTION":
                    message = TranslateManagerHelper.Convert("operation_failed");
                    break;

                default:
                    message = TranslateManagerHelper.Convert("error_contact_support");
                    break;
                }
            }

            parameters = new NavigationParameters
            {
                { Constants.PopupIsSucces, isSuccess },
                { Constants.PopupIsBeforeHome, false },
                { Constants.PopupMessage, message },
                { Constants.PopupNextPage, FunctionName.GiftCard }
            };

            //InitializeInput();
            //GoBacckToStpe1();
            await NavigationService.NavigateAsync(PopupName.SuccessfullPopup, parameters).ConfigureAwait(false);

            IsLoading = false;
        }