Пример #1
0
        private async void DisplayQrCode(VoucherModel voucherModel)
        {
            if (IsBusy || IsLoading)
            {
                // message toast
                ShowSnackBarWithAction(TranslateManagerHelper.Convert("loading_please_wait"), null, TranslateManagerHelper.Convert("ok").ToUpperInvariant());
                return;
            }
            IsLoading = true;

            VoucherCreateRequestData obj = JsonConvert.DeserializeObject <VoucherCreateRequestData>(voucherModel.QrCode);

            var datagenerate = new QRCodeVourcherData
            {
                Amount               = voucherModel.Amount,
                Currency             = voucherModel.Currency,
                Number               = voucherModel.VoucherNumber,
                UserName             = ApiConstants.CountryPrefix + _userInformation.UserName,
                SystemId             = ApiConstants.SystemId,
                Owner                = $"{obj.Fname} {obj.Lname}",
                CompanyId            = obj.Company,
                CompanyName          = obj.CompanyName,
                IdentificationTypeId = obj.IdentificationTypeId,
                IdNumber             = obj.IdNUmber,
                PhoneNumber          = obj.vPhone
            };

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

            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 = voucherModel.VoucherNumber,
                //Code2 = voucherModel.Amount,
                //Currency = voucherModel.Currency,
                QrCodeImage   = qrImage,
                IsDisplayIcon = true,
                Title         = TranslateManagerHelper.Convert("scan_me").ToUpperInvariant(),
                HigthTitle    = "vourchers"
            };

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

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

            IsLoading = false;
        }
Пример #2
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;
        }