예제 #1
0
        private void BtnClickSaveData_Click(object sender, EventArgs e)
        {
            // Serial number
            EditText serialNumberLoyalty = FindViewById <EditText>(Resource.Id.serinumberLoyalty);
            string   serialNumber        = serialNumberLoyalty.Text.ToString().Trim();

            if (TextUtils.IsEmpty(serialNumber))
            {
                Toast.MakeText(this, "Serial number can't be empty.", ToastLength.Long).Show();
                return;
            }

            // Pass type.
            EditText passStyleIdentifier = FindViewById <EditText>(Resource.Id.passStyleIdentifier);
            TextView passTypeId          = FindViewById <TextView>(Resource.Id.passTypeId);
            string   typeId = passTypeId.Text.ToString().Trim();

            if (TextUtils.IsEmpty(typeId))
            {
                Toast.MakeText(this, "Pass type can't be empty.", ToastLength.Long).Show();
                return;
            }

            //Issuer Id(App ID)
            TextView issuerIdView = FindViewById <TextView>(Resource.Id.issuerId);
            string   issuerId     = issuerIdView.Text.ToString().Trim();

            if (TextUtils.IsEmpty(issuerId))
            {
                Toast.MakeText(this, "IssuerId can't be empty.", ToastLength.Long).Show();
                return;
            }

            //Card Number.
            EditText edtCardNumber = FindViewById <EditText>(Resource.Id.cardNumberLoyalty);
            string   cardNumber    = edtCardNumber.Text.ToString().Trim();

            if (TextUtils.IsEmpty(cardNumber))
            {
                Toast.MakeText(this, "Card Number can't be empty.", ToastLength.Long).Show();
                return;
            }

            //Member Name.
            EditText edtMemberName = FindViewById <EditText>(Resource.Id.memberName);
            string   memberName    = edtMemberName.Text.ToString().Trim();

            if (TextUtils.IsEmpty(memberName))
            {
                Toast.MakeText(this, "Member Name can't be empty.", ToastLength.Long).Show();
                return;
            }

            //Locations
            EditText latitude   = FindViewById <EditText>(Resource.Id.latitude);
            EditText longitude  = FindViewById <EditText>(Resource.Id.longitude);
            EditText latitude1  = FindViewById <EditText>(Resource.Id.latitude1);
            EditText longitude1 = FindViewById <EditText>(Resource.Id.longitude1);

            //Add location.
            double latitudeValue  = 0.0;
            double longitudeValue = 0.0;
            string latitudeStr    = latitude.Text.ToString().Trim();
            string longitudeStr   = longitude.Text.ToString().Trim();
            string latitude1Str   = latitude1.Text.ToString().Trim();
            string longitude1Str  = longitude1.Text.ToString().Trim();

            if (TextUtils.IsEmpty(latitudeStr) || TextUtils.IsEmpty(longitudeStr))
            {
                Toast.MakeText(this, "Latitude & Longitude can't be empty.", ToastLength.Long).Show();
                return;
            }
            else
            {
                if (-90.0d <= Convert.ToDouble(latitudeStr) && Convert.ToDouble(latitudeStr) <= 90.0d &&
                    -180.0d <= Convert.ToDouble(longitudeStr) && Convert.ToDouble(longitudeStr) <= 180.0d)
                {
                    latitudeValue  = Convert.ToDouble(latitudeStr);
                    longitudeValue = Convert.ToDouble(longitudeStr);
                }
                else
                {
                    Toast.MakeText(this, "Latitude or Longitude value is illegal.", ToastLength.Long).Show();
                    return;
                }
            }

            //State
            string state = WalletPassConstant.PassStateActive;

            switch (dataList[index])
            {
            case "ACTIVE":
                state = WalletPassConstant.PassStateActive;
                break;

            case "COMPLETED":
                state = WalletPassConstant.PassStateCompleted;
                break;

            case "EXPIRED":
                state = WalletPassConstant.PassStateExpired;
                break;

            case "INACTIVE":
                state = WalletPassConstant.PassStateInactive;
                break;

            default:
                break;
            }

            //Create PassObject.Builder object.
            PassObject.Builder passBuilder = PassObject.GetBuilder();
            //Create common fields list.
            List <CommonField> commonField = new List <CommonField>();
            //Create append fields list.
            List <AppendField> appendFields = new List <AppendField>();

            //1	Background image of the card
            EditText    backgroundImage            = FindViewById <EditText>(Resource.Id.backgroundImage);
            CommonField backgroundImageCommonField = CommonField.GetBuilder()
                                                     .SetKey(WalletPassConstant.PassCommonFieldKeyBackgroundImg)
                                                     .SetLabel("backgroundImageLabel")
                                                     .SetValue(backgroundImage.Text.Trim().ToString())
                                                     .Build();

            commonField.Add(backgroundImageCommonField);

            //2	Logo on the card
            EditText    logoLoyalty     = FindViewById <EditText>(Resource.Id.logoLoyalty);
            CommonField logoCommonField = CommonField.GetBuilder()
                                          .SetKey(WalletPassConstant.PassCommonFieldKeyLogo)
                                          .SetLabel("This is logo label")
                                          .SetValue(logoLoyalty.Text.Trim().ToString())
                                          .Build();

            commonField.Add(logoCommonField);

            //3 Merchant name
            EditText    merchantNameLoyalty     = FindViewById <EditText>(Resource.Id.merchantNameLoyalty);
            CommonField merchantNameCommonField = CommonField.GetBuilder()
                                                  .SetKey(WalletPassConstant.PassCommonFieldKeyMerchantName)
                                                  .SetLabel("This is merchantName label.")
                                                  .SetValue(merchantNameLoyalty.Text.Trim().ToString())
                                                  .Build();

            commonField.Add(merchantNameCommonField);

            //4 Card name
            EditText    cardNameLoyalty     = FindViewById <EditText>(Resource.Id.nameLoyalty);
            CommonField cardNameCommonField = CommonField.GetBuilder()
                                              .SetKey(WalletPassConstant.PassCommonFieldKeyName)
                                              .SetLabel("This is cardName label")
                                              .SetValue(cardNameLoyalty.Text.Trim().ToString())
                                              .Build();

            commonField.Add(cardNameCommonField);

            //5 Card number
            CommonField cardNumberCommonField = CommonField.GetBuilder()
                                                .SetKey(WalletPassConstant.PassCommonFieldKeyCardNumber)
                                                .SetLabel("This is cardNumber label")
                                                .SetValue(cardNumber)
                                                .Build();

            //6 Balance
            EditText    balance            = FindViewById <EditText>(Resource.Id.balanceLoyalty);
            AppendField balanceCommonField = AppendField.GetBuilder()
                                             .SetKey(WalletPassConstant.PassCommonFieldKeyBalance)
                                             .SetLabel("Balance")
                                             .SetValue(balance.Text.Trim().ToString())
                                             .Build();

            appendFields.Add(balanceCommonField);

            //7 Number of associated coupons
            EditText relatedPassIdOne = FindViewById <EditText>(Resource.Id.relatedPassId1);
            EditText relatedPassTwo   = FindViewById <EditText>(Resource.Id.relatedPassId2);
            EditText relatedPassThree = FindViewById <EditText>(Resource.Id.relatedPassId3);
            EditText relatedPassFour  = FindViewById <EditText>(Resource.Id.relatedPassId4);
            List <RelatedPassInfo> relatedPassInfos = new List <RelatedPassInfo>();

            relatedPassInfos.Add(new RelatedPassInfo(relatedPassIdOne.Text.Trim().ToString(), relatedPassTwo.Text.Trim().ToString()));
            relatedPassInfos.Add(new RelatedPassInfo(relatedPassThree.Text.Trim().ToString(), relatedPassFour.Text.Trim().ToString()));
            passBuilder.AddRelatedPassIds(relatedPassInfos);

            //8 Number of loyalty points
            EditText    pointsLoyalty        = FindViewById <EditText>(Resource.Id.pointsLoyalty);
            AppendField pointsNubAppendField = AppendField.GetBuilder()
                                               .SetKey(WalletPassConstant.PassAppendFieldKeyPoints)
                                               .SetLabel("Points")
                                               .SetValue(pointsLoyalty.Text.Trim().ToString())
                                               .Build();

            appendFields.Add(pointsNubAppendField);

            //9 Barcode or QR Code
            //10 Remarks
            EditText barcodeText  = FindViewById <EditText>(Resource.Id.barcodeTextLoyalty);
            EditText barcodeValue = FindViewById <EditText>(Resource.Id.barcodeValueLoyalty);
            BarCode  barCode      = BarCode.GetBuilder()
                                    .SetType(BarCode.BarcodeTypeQrCode)
                                    .SetValue(barcodeValue.Text.Trim().ToString())
                                    .SetText(barcodeText.Text.Trim().ToString())
                                    .Build();

            passBuilder.SetBarCode(barCode);

            //11 Member name
            CommonField memberNameCommonField = CommonField.GetBuilder()
                                                .SetKey(WalletPassConstant.PassCommonFieldKeyMemberName)
                                                .SetLabel("Member Name")
                                                .SetValue(memberName)
                                                .Build();

            commonField.Add(memberNameCommonField);
            //12	Loyalty card number ->same to 5.Card number

            //13 Loyalty level
            EditText    edtLevelLoyalty  = FindViewById <EditText>(Resource.Id.levelLoyalty);
            AppendField levelAppendField = AppendField.GetBuilder()
                                           .SetKey(WalletPassConstant.PassAppendFieldKeyRewardsLevel)
                                           .SetLabel("Tier")
                                           .SetValue(edtLevelLoyalty.Text.Trim().ToString())
                                           .Build();

            appendFields.Add(levelAppendField);

            //14 Message
            EditText           messageHeader    = FindViewById <EditText>(Resource.Id.messageHeader);
            EditText           messageBody      = FindViewById <EditText>(Resource.Id.messageBody);
            EditText           messageHeaderOne = FindViewById <EditText>(Resource.Id.messageHeader1);
            EditText           messageBodyOne   = FindViewById <EditText>(Resource.Id.messageBody1);
            List <AppendField> messageList      = new List <AppendField>();

            messageList.Add(AppendField.GetBuilder()
                            .SetKey("1")
                            .SetLabel(messageHeader.Text.Trim().ToString())
                            .SetValue(messageBody.Text.Trim().ToString())
                            .Build());
            messageList.Add(AppendField.GetBuilder()
                            .SetKey("2")
                            .SetLabel(messageHeaderOne.Text.Trim().ToString())
                            .SetValue(messageBodyOne.Text.Trim().ToString())
                            .Build());
            passBuilder.AddMessageList(messageList);

            //15 Scrolling Images
            //ImageUris
            EditText           imageModuleDataMainUris       = FindViewById <EditText>(Resource.Id.imageModuleDataMainImageUris);
            EditText           imageModuleDataMainUrisDes    = FindViewById <EditText>(Resource.Id.imageModuleDataMainImageUrisDes);
            EditText           imageModuleDataMainUrisOne    = FindViewById <EditText>(Resource.Id.imageModuleDataMainImageUris1);
            EditText           imageModuleDataMainUrisDesOne = FindViewById <EditText>(Resource.Id.imageModuleDataMainImageUrisDes1);
            List <AppendField> imageList = new List <AppendField>();

            imageList.Add(AppendField.GetBuilder()
                          .SetKey("1")
                          .SetLabel(imageModuleDataMainUrisDes.Text.Trim().ToString())
                          .SetValue(imageModuleDataMainUris.Text.Trim().ToString())
                          .Build());
            imageList.Add(AppendField.GetBuilder()
                          .SetKey("2")
                          .SetLabel(imageModuleDataMainUrisDesOne.Text.Trim().ToString())
                          .SetValue(imageModuleDataMainUrisOne.Text.Trim().ToString())
                          .Build());
            passBuilder.AddImageList(imageList);

            //UrlList
            EditText           loyaltyUrlLabel    = FindViewById <EditText>(Resource.Id.loyaltyUrlLable);
            EditText           loyaltyUrlValue    = FindViewById <EditText>(Resource.Id.loyaltyUrlValue);
            EditText           loyaltyUrlLabelOne = FindViewById <EditText>(Resource.Id.loyaltyUrlLable1);
            EditText           loyaltyUrlValueOne = FindViewById <EditText>(Resource.Id.loyaltyUrlValue1);
            List <AppendField> urlList            = new List <AppendField>();

            urlList.Add(AppendField.GetBuilder()
                        .SetKey("1")
                        .SetLabel(loyaltyUrlLabel.Text.Trim().ToString())
                        .SetValue(loyaltyUrlValue.Text.Trim().ToString())
                        .Build());
            urlList.Add(AppendField.GetBuilder()
                        .SetKey("2")
                        .SetLabel(loyaltyUrlLabelOne.Text.Trim().ToString())
                        .SetValue(loyaltyUrlValueOne.Text.Trim().ToString())
                        .Build());
            passBuilder.AddUrlList(urlList);

            //16 Nearby stores
            EditText    nearbyLocationsLabel    = FindViewById <EditText>(Resource.Id.nearbyLocationsLable);
            EditText    nearbyLocationsValue    = FindViewById <EditText>(Resource.Id.nearbyLocationsValue);
            string      nearbyLocationsLabelStr = nearbyLocationsLabel.Text.Trim().ToString();
            string      nearbyLocationsValueStr = nearbyLocationsValue.Text.Trim().ToString();
            AppendField nearbyAppendField       = AppendField.GetBuilder()
                                                  .SetKey(WalletPassConstant.PassAppendFieldKeyNearbyLocations)
                                                  .SetLabel(nearbyLocationsLabelStr)
                                                  .SetValue(nearbyLocationsValueStr)
                                                  .Build();

            appendFields.Add(nearbyAppendField);

            //17 Main Page
            EditText    webSiteLabel        = FindViewById <EditText>(Resource.Id.websiteLable);
            EditText    webSiteValue        = FindViewById <EditText>(Resource.Id.websiteValue);
            string      webSiteLabelStr     = webSiteLabel.Text.Trim().ToString();
            string      webSiteValueStr     = webSiteValue.Text.Trim().ToString();
            AppendField mainPageAppendField = AppendField.GetBuilder()
                                              .SetKey(WalletPassConstant.PassAppendFieldKeyMainpage)
                                              .SetLabel(webSiteLabelStr)
                                              .SetValue(webSiteValueStr)
                                              .Build();

            appendFields.Add(mainPageAppendField);

            //18 Hotline
            EditText    hotLineLabel       = FindViewById <EditText>(Resource.Id.hotlineLable);
            EditText    hotLineValue       = FindViewById <EditText>(Resource.Id.hotlineValue);
            string      hotLineLabelStr    = hotLineLabel.Text.Trim().ToString();
            string      hotLineValueStr    = hotLineValue.Text.Trim().ToString();
            AppendField hotLineAppendField = AppendField.GetBuilder()
                                             .SetKey(WalletPassConstant.PassAppendFieldKeyHotline)
                                             .SetLabel(hotLineLabelStr)
                                             .SetValue(hotLineValueStr)
                                             .Build();

            appendFields.Add(hotLineAppendField);

            //Latlng
            List <Location> locationList = new List <Location>();

            locationList.Add(new Location(longitudeStr, latitudeStr));
            locationList.Add(new Location(longitude1Str, latitude1Str));
            passBuilder.AddLocationList(locationList);

            //Time
            long start = 0;
            long end   = 0;
            Date date  = new Date();

            if (TextUtils.IsEmpty(startTime))
            {
                Toast.MakeText(this, "Please select StartTime", ToastLength.Long).Show();
                return;
            }
            else
            {
                start = BasisTimesUtils.GetLongtimeOfYMD(startTime);
            }

            if (TextUtils.IsEmpty(endTime))
            {
                Toast.MakeText(this, "Please select EndTime", ToastLength.Long).Show();
                return;
            }
            else
            {
                end = BasisTimesUtils.GetLongtimeOfYMD(endTime);
            }

            if (end <= start || end <= date.Time)
            {
                Toast.MakeText(this, "Please check (EndTime > StartTime) && (EndTime > Current time)", ToastLength.Long).Show();
                return;
            }

            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.English);

            passBuilder.SetStatus(PassStatus.GetBuilder()
                                  .SetState(state)
                                  .SetEffectTime(format.Format(new Date(start)))
                                  .SetExpireTime(format.Format(new Date(end)))
                                  .Build())
            .SetOrganizationPassId(cardNumber)
            .SetPassStyleIdentifier(passStyleIdentifier.Text.Trim().ToString())
            .SetPassTypeIdentifier(typeId)
            .SetSerialNumber(serialNumber)
            .AddAppendFields(appendFields)
            .AddCommonFields(commonField);

            PassObject passObject = passBuilder.Build();
            Intent     intent     = new Intent(this, typeof(PassTestActivity));

            intent.PutExtra("passObject", passObject.ToJson());
            intent.PutExtra("passId", cardNumber);
            intent.PutExtra("issuerId", issuerId);
            intent.PutExtra("typeId", typeId);
            StartActivity(intent);
        }
        private void BtnClickSaveCouponData_Click(object sender, EventArgs e)
        {
            //Serial number
            EditText edtSerialNumberCoupon = FindViewById <EditText>(Resource.Id.serinumberCoupon);
            string   serialNumber          = edtSerialNumberCoupon.Text.Trim().ToString();

            if (TextUtils.IsEmpty(serialNumber))
            {
                Toast.MakeText(this, "Serialnumber can't be empty.", ToastLength.Long).Show();
                return;
            }

            //Organization id
            EditText edtOrganizationIdCoupon = FindViewById <EditText>(Resource.Id.cardNumberCoupon);
            string   organizationId          = edtOrganizationIdCoupon.Text.Trim().ToString();

            if (TextUtils.IsEmpty(organizationId))
            {
                Toast.MakeText(this, "Cardnumber can't be empty.", ToastLength.Long).Show();
                return;
            }

            //Style id
            EditText edtPassStyleIdentifierCoupon = FindViewById <EditText>(Resource.Id.passStyleIdentifierCoupon);
            string   styleId = edtPassStyleIdentifierCoupon.Text.Trim().ToString();

            if (TextUtils.IsEmpty(styleId))
            {
                Toast.MakeText(this, "Template ID can't be empty.", ToastLength.Long).Show();
                return;
            }

            //Pass type id
            EditText edtPassType = FindViewById <EditText>(Resource.Id.typeIdentifierCoupon);
            string   typeId      = edtPassType.Text.Trim().ToString();

            if (TextUtils.IsEmpty(typeId))
            {
                Toast.MakeText(this, "Pass type can't be empty.", ToastLength.Long).Show();
                return;
            }

            //Issuer id.
            EditText edtIssuerId = FindViewById <EditText>(Resource.Id.issuerIdCoupon);
            string   issuerId    = edtIssuerId.Text.Trim().ToString();

            if (TextUtils.IsEmpty(issuerId))
            {
                Toast.MakeText(this, "Issuer id can't be empty.", ToastLength.Long).Show();
                return;
            }

            EditText edtBackgroundColor = FindViewById <EditText>(Resource.Id.backgroundColorCoupon);
            EditText edtLogoCoupon      = FindViewById <EditText>(Resource.Id.logoCoupon);

            //Merchant name
            EditText edtMerchantNameCoupon = FindViewById <EditText>(Resource.Id.merchantNameCoupon);
            string   merchantName          = edtMerchantNameCoupon.Text.Trim().ToString();

            if (TextUtils.IsEmpty(merchantName))
            {
                Toast.MakeText(this, "Merchant name can't be empty.", ToastLength.Long).Show();
                return;
            }

            //Coupon title
            EditText edtNameCoupon = FindViewById <EditText>(Resource.Id.nameCoupon);
            string   name          = edtNameCoupon.Text.Trim().ToString();

            if (TextUtils.IsEmpty(name))
            {
                Toast.MakeText(this, "Coupon title can't be empty.", ToastLength.Long).Show();
                return;
            }

            //State
            string state = WalletPassConstant.PassStateActive;

            switch (dataList[index])
            {
            case "ACTIVE":
                state = WalletPassConstant.PassStateActive;
                break;

            case "COMPLETED":
                state = WalletPassConstant.PassStateCompleted;
                break;

            case "EXPIRED":
                state = WalletPassConstant.PassStateExpired;
                break;

            case "INACTIVE":
                state = WalletPassConstant.PassStateInactive;
                break;

            default:
                break;
            }

            //Time check
            long start = 0;
            long end   = 0;
            Date date  = new Date();

            if (TextUtils.IsEmpty(startTime))
            {
                Toast.MakeText(this, "Please select StartTime.", ToastLength.Long).Show();
                return;
            }
            else
            {
                start = BasisTimesUtils.GetLongtimeOfYMD(startTime);
            }

            if (TextUtils.IsEmpty(endTime))
            {
                Toast.MakeText(this, "Please select EndTime", ToastLength.Long).Show();
                return;
            }
            else
            {
                end = BasisTimesUtils.GetLongtimeOfYMD(endTime);
            }

            if (end <= start || end <= date.Time)
            {
                Toast.MakeText(this, "Please check (EndTime > StartTime) && (EndTime > CurrentTime)", ToastLength.Long).Show();
                return;
            }

            //Provider name
            EditText edtMerchantProviderCoupon = FindViewById <EditText>(Resource.Id.merchantProvidesCoupon);
            string   providesCoupon            = edtMerchantProviderCoupon.Text.ToString();

            if (TextUtils.IsEmpty(providesCoupon))
            {
                Toast.MakeText(this, "ProvidesName can't be empty.", ToastLength.Long).Show();
                return;
            }

            //Bar code
            EditText edtPassBarcode      = FindViewById <EditText>(Resource.Id.barcodeTextCoupon);
            EditText edtPassBarcodeValue = FindViewById <EditText>(Resource.Id.barcodeValueCoupon);

            //Details
            EditText edtDetailsCoupon = FindViewById <EditText>(Resource.Id.DetailsCoupon);

            //ImageUris
            EditText edtImageModuleDataMainImageUrisCoupon        = FindViewById <EditText>(Resource.Id.imageModuleDataMainImageUrisCoupon);
            EditText edtImageModuleDataMainImageUrisDescCoupon    = FindViewById <EditText>(Resource.Id.imageModuleDataMainImageUrisDesCoupon);
            EditText edtImageModuleDataMainImageUrisCouponOne     = FindViewById <EditText>(Resource.Id.imageModuleDataMainImageUrisCoupon1);
            EditText edtImageModuleDataMainImageUrisDescCouponOne = FindViewById <EditText>(Resource.Id.imageModuleDataMainImageUrisDesCoupon1);

            string imageUris    = edtImageModuleDataMainImageUrisCoupon.Text.Trim().ToString();
            string imageDesc    = edtImageModuleDataMainImageUrisDescCoupon.Text.Trim().ToString();
            string imageUrisOne = edtImageModuleDataMainImageUrisCouponOne.Text.Trim().ToString();
            string imageDescOne = edtImageModuleDataMainImageUrisDescCouponOne.Text.Trim().ToString();

            //DisclaimerCoupon
            EditText edtDisclaimerCoupon = FindViewById <EditText>(Resource.Id.disclaimerCoupon);

            //Message
            EditText edtMessageHeaderCoupon    = FindViewById <EditText>(Resource.Id.messageHeaderCoupon);
            EditText edtMessageBodyCoupon      = FindViewById <EditText>(Resource.Id.messageBodyCoupon);
            EditText edtMessageHeaderCouponOne = FindViewById <EditText>(Resource.Id.messageHeaderCoupon1);
            EditText edtMessageBodyCouponOne   = FindViewById <EditText>(Resource.Id.messageBodyCoupon1);

            string messageHeader    = edtMessageHeaderCoupon.Text.Trim().ToString();
            string messageBody      = edtMessageBodyCoupon.Text.Trim().ToString();
            string messageHeaderOne = edtMessageHeaderCouponOne.Text.Trim().ToString();
            string messageBodyOne   = edtMessageBodyCouponOne.Text.Trim().ToString();

            PassObject.Builder passBuilder = PassObject.GetBuilder();
            //Common fields
            List <CommonField> commonFields = new List <CommonField>();
            //Append fields
            List <AppendField> appendFields = new List <AppendField>();

            //1 Background color of the outer frame.
            CommonField backgroundColorCommonField = CommonField.GetBuilder()
                                                     .SetKey(WalletPassConstant.PassAppendFieldKeyBackgroundColor)
                                                     .SetLabel("Background color label")
                                                     .SetValue(edtBackgroundColor.Text.Trim().ToString())
                                                     .Build();

            commonFields.Add(backgroundColorCommonField);

            //3 Logo on the coupon.
            CommonField logoCommonField = CommonField.GetBuilder()
                                          .SetKey(WalletPassConstant.PassCommonFieldKeyLogo)
                                          .SetLabel("This is logo label")
                                          .SetValue(edtLogoCoupon.Text.Trim().ToString())
                                          .Build();

            commonFields.Add(logoCommonField);

            //4 Merchant name
            CommonField merchantNameCommonField = CommonField.GetBuilder()
                                                  .SetKey(WalletPassConstant.PassCommonFieldKeyMerchantName)
                                                  .SetLabel("This is merchant name label")
                                                  .SetValue(merchantName)
                                                  .Build();

            commonFields.Add(merchantNameCommonField);

            //5 Coupon title
            CommonField couponTitleCommonField = CommonField.GetBuilder()
                                                 .SetKey(WalletPassConstant.PassCommonFieldKeyName)
                                                 .SetLabel("This is Coupon title label")
                                                 .SetValue(name)
                                                 .Build();

            commonFields.Add(couponTitleCommonField);

            //6 Expiration time
            //Simple date format.
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");

            passBuilder.SetStatus(PassStatus.GetBuilder().SetState(state).SetEffectTime(format.Format(new Date(start))).SetExpireTime(format.Format(new Date(end))).Build());

            //7 Merchant that provides the coupon
            AppendField merchantProvidesAppendField = AppendField.GetBuilder()
                                                      .SetKey(WalletPassConstant.PassCommonFieldKeyProviderName)
                                                      .SetLabel("This is merchant provider label")
                                                      .SetValue(providesCoupon)
                                                      .Build();

            appendFields.Add(merchantProvidesAppendField);

            //8 Barcode or QR code
            //9 Remarks
            BarCode barCode = BarCode.GetBuilder()
                              .SetType(BarCode.BarcodeTypeQrCode)
                              .SetValue(edtPassBarcodeValue.Text.Trim().ToString())
                              .SetText(edtPassBarcode.Text.Trim().ToString())
                              .Build();

            passBuilder.SetBarCode(barCode);

            //10 Details
            AppendField detailsAppendField = AppendField.GetBuilder()
                                             .SetKey(WalletPassConstant.PassAppendFieldKeyDetails)
                                             .SetLabel("This is details label")
                                             .SetValue(edtDetailsCoupon.Text.Trim().ToString())
                                             .Build();

            appendFields.Add(detailsAppendField);

            //11 Scrolling images
            List <AppendField> imageList = new List <AppendField>();

            imageList.Add(AppendField.GetBuilder()
                          .SetKey("1")
                          .SetLabel(imageDesc)
                          .SetValue(imageUris)
                          .Build());
            imageList.Add(AppendField.GetBuilder()
                          .SetKey("2")
                          .SetLabel(imageDescOne)
                          .SetValue(imageUrisOne)
                          .Build());
            passBuilder.AddImageList(imageList);

            //Urllist
            EditText edtCouponUrlLabel    = FindViewById <EditText>(Resource.Id.couponUrlLable);
            EditText edtCouponUrlValue    = FindViewById <EditText>(Resource.Id.couponUrlValue);
            EditText edtCouponUrlLabelOne = FindViewById <EditText>(Resource.Id.couponUrlLable1);
            EditText edtCouponUrlValueOne = FindViewById <EditText>(Resource.Id.couponUrlValue1);

            List <AppendField> urlList = new List <AppendField>();

            urlList.Add(AppendField.GetBuilder()
                        .SetKey("1")
                        .SetLabel(edtCouponUrlLabel.Text.Trim().ToString())
                        .SetValue(edtCouponUrlValue.Text.Trim().ToString())
                        .Build());
            urlList.Add(AppendField.GetBuilder()
                        .SetKey("2")
                        .SetLabel(edtCouponUrlLabelOne.Text.Trim().ToString())
                        .SetValue(edtCouponUrlValueOne.Text.Trim().ToString())
                        .Build());
            passBuilder.AddUrlList(urlList);

            //12 Disclaimer
            AppendField disclaimerAppendField = AppendField.GetBuilder()
                                                .SetKey(WalletPassConstant.PassAppendFieldKeyDisclaimer)
                                                .SetLabel("This is Disclaimer label")
                                                .SetValue(edtDisclaimerCoupon.Text.Trim().ToString())
                                                .Build();

            appendFields.Add(disclaimerAppendField);

            //13 Message
            List <AppendField> messageList = new List <AppendField>();

            messageList.Add(AppendField.GetBuilder()
                            .SetKey("1")
                            .SetLabel(messageHeader)
                            .SetValue(messageBody)
                            .Build());
            messageList.Add(AppendField.GetBuilder()
                            .SetKey("2")
                            .SetLabel(messageHeaderOne)
                            .SetValue(messageBodyOne)
                            .Build());
            passBuilder.AddMessageList(messageList);

            passBuilder.SetOrganizationPassId(organizationId);
            passBuilder.SetPassStyleIdentifier(styleId);
            passBuilder.SetPassTypeIdentifier(typeId);
            passBuilder.SetSerialNumber(serialNumber);
            passBuilder.AddAppendFields(appendFields);
            passBuilder.AddCommonFields(commonFields);

            PassObject passObject = passBuilder.Build();
            Intent     intent     = new Intent(this, typeof(PassTestActivity));

            intent.PutExtra("passObject", passObject.ToJson());
            intent.PutExtra("passId", organizationId);
            intent.PutExtra("issuerId", issuerId);
            intent.PutExtra("typeId", typeId);
            StartActivity(intent);
        }
        private void BtnClickSaveGiftData_Click(object sender, EventArgs e)
        {
            //Pass style identifier.
            EditText edtPassStyleIdentifierGift = FindViewById <EditText>(Resource.Id.passStyleIdentifierGift);
            string   styleId = edtPassStyleIdentifierGift.Text.Trim().ToString();

            if (TextUtils.IsEmpty(styleId))
            {
                Toast.MakeText(this, "Template Id cant be empty.", ToastLength.Long).Show();
                return;
            }

            //Construct gift card data.
            PassObject.Builder passBuilder = PassObject.GetBuilder();

            //Common fields.
            List <CommonField> commonFields = new List <CommonField>();
            //Append fields.
            List <AppendField> appendFields = new List <AppendField>();

            //Background and description
            EditText edtBackgroundColor     = FindViewById <EditText>(Resource.Id.giftBackGroundImage);
            EditText edtBackgroundColorDesc = FindViewById <EditText>(Resource.Id.giftBackGroundImageDesc);

            //1 Background image of the card.
            CommonField backgroundImageCommonField = CommonField.GetBuilder()
                                                     .SetKey(WalletPassConstant.PassCommonFieldKeyBackgroundImg)
                                                     .SetLabel(edtBackgroundColorDesc.Text.Trim().ToString())
                                                     .SetValue(edtBackgroundColor.Text.Trim().ToString())
                                                     .Build();

            commonFields.Add(backgroundImageCommonField);

            //2 Logo on the card
            //Logo
            EditText    edtGiftCardLogo = FindViewById <EditText>(Resource.Id.giftCardLogo);
            CommonField logoCommonField = CommonField.GetBuilder()
                                          .SetKey(WalletPassConstant.PassCommonFieldKeyLogo)
                                          .SetLabel("This is logo label")
                                          .SetValue(edtGiftCardLogo.Text.Trim().ToString())
                                          .Build();

            commonFields.Add(logoCommonField);

            //3 Merchant name
            EditText edtMerchantName = FindViewById <EditText>(Resource.Id.giftMerchantName);

            CommonField merchantNameCommonField = CommonField.GetBuilder()
                                                  .SetKey(WalletPassConstant.PassCommonFieldKeyMerchantName)
                                                  .SetLabel("This is Merchant Name label")
                                                  .SetValue(edtMerchantName.Text.Trim().ToString())
                                                  .Build();

            commonFields.Add(merchantNameCommonField);

            //4 Card name
            EditText    edtGiftCardname     = FindViewById <EditText>(Resource.Id.giftCardname);
            CommonField cardNameCommonField = CommonField.GetBuilder()
                                              .SetKey(WalletPassConstant.PassCommonFieldKeyName)
                                              .SetLabel("This is Card name label")
                                              .SetValue(edtGiftCardname.Text.Trim().ToString())
                                              .Build();

            commonFields.Add(cardNameCommonField);

            //5 Card number
            EditText edtGiftCardNumber = FindViewById <EditText>(Resource.Id.giftCardNumber);
            string   giftCardNumber    = edtGiftCardNumber.Text.Trim().ToString();

            if (TextUtils.IsEmpty(giftCardNumber))
            {
                Toast.MakeText(this, "Card number can't be empty.", ToastLength.Long).Show();
                return;
            }
            CommonField cardNumberCommonField = CommonField.GetBuilder()
                                                .SetKey(WalletPassConstant.PassCommonFieldKeyCardNumber)
                                                .SetLabel("This is CardNumber label")
                                                .SetValue(giftCardNumber)
                                                .Build();

            commonFields.Add(cardNumberCommonField);

            //6 Balance
            EditText    edtGiftBalance     = FindViewById <EditText>(Resource.Id.giftBalance);
            CommonField balanceCommonField = CommonField.GetBuilder()
                                             .SetKey(WalletPassConstant.PassCommonFieldKeyBalance)
                                             .SetLabel("This is balance label")
                                             .SetValue(edtGiftBalance.Text.Trim().ToString())
                                             .Build();

            commonFields.Add(balanceCommonField);

            //Gift currrency
            EditText edtGiftCurrency = FindViewById <EditText>(Resource.Id.giftCurrency);

            passBuilder.SetCurrencyCode(edtGiftCurrency.Text.Trim().ToString());

            //7 Barcode or Qrcode
            EditText edtPassBarcodeAlternate = FindViewById <EditText>(Resource.Id.passBarcodeAlternateText);
            string   barType             = BarCode.BarcodeTypeQrCode;
            EditText edtPassBarcodeValue = FindViewById <EditText>(Resource.Id.passBarcodeValue);

            switch (barcodeStyleList[barcodeStyleIndex])
            {
            case "Codabar":
                barType = BarCode.BarcodeTypeCodabar;
                break;

            case "QrCode":
                barType = BarCode.BarcodeTypeQrCode;
                break;

            default:
                break;
            }

            BarCode barCode = BarCode.GetBuilder()
                              .SetType(barType)
                              .SetValue(edtPassBarcodeValue.Text.Trim().ToString())
                              .SetText(edtPassBarcodeAlternate.Text.Trim().ToString())
                              .Build();

            passBuilder.SetBarCode(barCode);

            //9 Balance update time
            // balance update time
            long update = 0;

            if (TextUtils.IsEmpty(updateTime))
            {
                Toast.MakeText(this, "Please select balance updateTime", ToastLength.Long).Show();
                return;
            }
            else
            {
                update = BasisTimesUtils.GetLongtimeOfYMD(updateTime);
            }

            //Simple date format
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
            // Create SimpleDateFormat
            string      updateTimeValue = format.Format(new Java.Util.Date(update));
            CommonField balanceUpdateTimeAppendfield = CommonField.GetBuilder()
                                                       .SetKey(WalletPassConstant.PassCommonFieldKeyBalanceRefreshTime)
                                                       .SetLabel("Updated")
                                                       .SetValue(updateTimeValue)
                                                       .Build();

            commonFields.Add(balanceUpdateTimeAppendfield);

            //10 Pin
            EditText    edtGiftCardPin = FindViewById <EditText>(Resource.Id.giftCardPin);
            CommonField pinCommonField = CommonField.GetBuilder()
                                         .SetKey(WalletPassConstant.PassCommonFieldKeyBlancePin)
                                         .SetLabel("PIN Number")
                                         .SetValue(edtGiftCardPin.Text.ToString())
                                         .Build();

            commonFields.Add(pinCommonField);

            //11 Event number
            EditText    edtGiftEventNumber     = FindViewById <EditText>(Resource.Id.giftEventNumber);
            AppendField eventNumberAppendField = AppendField.GetBuilder()
                                                 .SetKey(WalletPassConstant.PassAppendFieldKeyEventNumber)
                                                 .SetLabel("Event Number")
                                                 .SetValue(edtGiftEventNumber.Text.Trim().ToString())
                                                 .Build();

            appendFields.Add(eventNumberAppendField);

            //12 Message
            //message
            EditText edtMessageHeaderGift    = FindViewById <EditText>(Resource.Id.messageHeaderGift);
            EditText edtMessageBodyGift      = FindViewById <EditText>(Resource.Id.messageBodyGift);
            EditText edtMessageHeaderGiftOne = FindViewById <EditText>(Resource.Id.messageHeaderGift1);
            EditText edtMessageBodyGiftOne   = FindViewById <EditText>(Resource.Id.messageBodyGift1);

            List <AppendField> messageList = new List <AppendField>();

            messageList.Add(AppendField.GetBuilder()
                            .SetKey("1")
                            .SetLabel(edtMessageHeaderGift.Text.Trim().ToString())
                            .SetValue(edtMessageBodyGift.Text.Trim().ToString())
                            .Build());
            messageList.Add(AppendField.GetBuilder()
                            .SetKey("2")
                            .SetLabel(edtMessageHeaderGiftOne.Text.Trim().ToString())
                            .SetValue(edtMessageBodyGiftOne.Text.Trim().ToString())
                            .Build());
            passBuilder.AddMessageList(messageList);

            //13 Scrolling images
            List <AppendField> imageList                 = new List <AppendField>();
            EditText           edtScrollingImagesOne     = FindViewById <EditText>(Resource.Id.giftScrollingImages1);
            EditText           edtScrollingImagesDescOne = FindViewById <EditText>(Resource.Id.giftScrollingDesc1);
            EditText           edtScrollingImagesTwo     = FindViewById <EditText>(Resource.Id.giftScrollingImages2);
            EditText           edtScrollingImagesDescTwo = FindViewById <EditText>(Resource.Id.giftScrollingDesc2);

            imageList.Add(AppendField.GetBuilder()
                          .SetKey("1")
                          .SetLabel(edtScrollingImagesDescOne.Text.Trim().ToString())
                          .SetValue(edtScrollingImagesDescTwo.Text.Trim().ToString())
                          .Build());
            imageList.Add(AppendField.GetBuilder()
                          .SetKey("2")
                          .SetLabel(edtScrollingImagesDescTwo.Text.Trim().ToString())
                          .SetValue(edtScrollingImagesTwo.Text.Trim().ToString())
                          .Build());
            passBuilder.AddImageList(imageList);

            //UrlList
            EditText edtGiftUrlLabel    = FindViewById <EditText>(Resource.Id.giftUrlLable);
            EditText edtGiftUrlValue    = FindViewById <EditText>(Resource.Id.giftUrlValue);
            EditText edtGiftUrlLabelOne = FindViewById <EditText>(Resource.Id.giftUrlLable1);
            EditText edtGiftUrlValueOne = FindViewById <EditText>(Resource.Id.giftUrlValue1);

            List <AppendField> urlList = new List <AppendField>();

            urlList.Add(AppendField.GetBuilder()
                        .SetKey("1")
                        .SetLabel(edtGiftUrlLabel.Text.Trim().ToString())
                        .SetValue(edtGiftUrlValue.Text.Trim().ToString())
                        .Build());
            urlList.Add(AppendField.GetBuilder()
                        .SetKey("2")
                        .SetLabel(edtGiftUrlLabelOne.Text.Trim().ToString())
                        .SetValue(edtGiftUrlValueOne.Text.Trim().ToString())
                        .Build());
            passBuilder.AddUrlList(urlList);

            //14 Nearby stores
            EditText    edtGiftNearbyStoresUrl  = FindViewById <EditText>(Resource.Id.giftNearbyStoresUrl);
            EditText    edtGiftNearbyStoresName = FindViewById <EditText>(Resource.Id.giftNearbyStoresName);
            AppendField nearbyAppendField       = AppendField.GetBuilder()
                                                  .SetKey(WalletPassConstant.PassAppendFieldKeyNearbyLocations)
                                                  .SetLabel(edtGiftNearbyStoresName.Text.Trim().ToString())
                                                  .SetValue(edtGiftNearbyStoresUrl.Text.Trim().ToString())
                                                  .Build();

            appendFields.Add(nearbyAppendField);

            //15 Main page
            EditText edtGiftMainPageUrl  = FindViewById <EditText>(Resource.Id.giftMainPageUrl);
            EditText edtGiftMainPageName = FindViewById <EditText>(Resource.Id.giftMainPageName);

            AppendField mainPageAppendField = AppendField.GetBuilder()
                                              .SetKey(WalletPassConstant.PassAppendFieldKeyMainpage)
                                              .SetLabel(edtGiftMainPageName.Text.Trim().ToString())
                                              .SetValue(edtGiftMainPageUrl.Text.Trim().ToString())
                                              .Build();

            appendFields.Add(mainPageAppendField);
            //16 Hotline
            EditText    edtGiftHotlinePone = FindViewById <EditText>(Resource.Id.giftHotlinePone);
            EditText    edtGiftHotlineName = FindViewById <EditText>(Resource.Id.giftHotlineName);
            AppendField hotlineAppendField = AppendField.GetBuilder()
                                             .SetKey(WalletPassConstant.PassAppendFieldKeyHotline)
                                             .SetLabel(edtGiftHotlineName.Text.Trim().ToString())
                                             .SetValue(edtGiftHotlinePone.Text.Trim().ToString())
                                             .Build();
            //Public constant
            //Time check
            long start = 0;
            long end   = 0;
            Date date  = new Date();

            if (TextUtils.IsEmpty(startTime))
            {
                Toast.MakeText(this, "Please select Starttime", ToastLength.Long).Show();
                return;
            }
            else
            {
                start = BasisTimesUtils.GetLongtimeOfYMD(startTime);
            }

            if (TextUtils.IsEmpty(endTime))
            {
                Toast.MakeText(this, "Please select EndTime", ToastLength.Long).Show();
                return;
            }
            else
            {
                end = BasisTimesUtils.GetLongtimeOfYMD(endTime);
            }

            if (end <= start || end <= date.Time)
            {
                Toast.MakeText(this, "Please check (EndTime > StartTime)&& (EndTime > Current Time)", ToastLength.Long).Show();
                return;
            }
            //serial Number
            EditText organizationPassIdGift = FindViewById <EditText>(Resource.Id.organizationPassIdGift);
            string   organizationPassId     = organizationPassIdGift.Text.Trim().ToString();

            if (TextUtils.IsEmpty(organizationPassId))
            {
                Toast.MakeText(this, "SerialNumber can't be empty.", ToastLength.Long).Show();
                return;
            }

            EditText passTypeId = FindViewById <EditText>(Resource.Id.passTypeIdentifier);
            string   typeId     = passTypeId.Text.Trim().ToString();

            if (TextUtils.IsEmpty(typeId))
            {
                Toast.MakeText(this, "Pass Type can't be empty", ToastLength.Long).Show();
                return;
            }

            EditText edtIssuerIdGift = FindViewById <EditText>(Resource.Id.issuerIdGift);
            string   issuerId        = edtIssuerIdGift.Text.Trim().ToString();

            if (TextUtils.IsEmpty(issuerId))
            {
                Toast.MakeText(this, "Issuer id can't be empty.", ToastLength.Long).Show();
                return;
            }

            //State
            string state = WalletPassConstant.PassStateActive;

            switch (dataList[index])
            {
            case "ACTIVE":
                state = WalletPassConstant.PassStateActive;
                break;

            case "COMPLETED":
                state = WalletPassConstant.PassStateCompleted;
                break;

            case "EXPIRED":
                state = WalletPassConstant.PassStateExpired;
                break;

            case "INACTIVE":
                state = WalletPassConstant.PassStateInactive;
                break;

            default:
                break;
            }

            appendFields.Add(hotlineAppendField);
            //PassStyleIdentifier
            EditText edtPassStyleIdentifier = FindViewById <EditText>(Resource.Id.passStyleIdentifierGift);

            passBuilder.SetOrganizationPassId(edtGiftCardNumber.Text.Trim().ToString());
            passBuilder.SetPassStyleIdentifier(edtPassStyleIdentifier.Text.Trim().ToString());
            passBuilder.SetPassTypeIdentifier(typeId);
            passBuilder.SetSerialNumber(organizationPassId);
            passBuilder.SetStatus(PassStatus.GetBuilder().SetState(state).SetEffectTime(format.Format(new Date(start))).SetExpireTime(format.Format(new Date(end))).Build());
            passBuilder.AddAppendFields(appendFields);
            passBuilder.AddCommonFields(commonFields);
            PassObject passObject = passBuilder.Build();

            Log.Info("GiftCardActivity", "passObject: " + passObject.ToJson());
            Intent intent = new Intent(this, typeof(PassTestActivity));

            intent.PutExtra("passObject", passObject.ToJson());
            intent.PutExtra("passId", organizationPassId);
            intent.PutExtra("issuerId", issuerId);
            intent.PutExtra("typeId", typeId);
            StartActivity(intent);
        }