public override bool Equals(object obj)
        {
            RedeemerItem lhs = obj as RedeemerItem;

            if (lhs != null)
            {
                return(lhs == this);
            }
            return(false);
        }
Example #2
0
        void OnLoadPayouts(string err, Hashtable data)
        {
            if (!string.IsNullOrEmpty(err))
            {
                EB.Debug.LogError("获取商品失败:" + err);
                _config.Listener.OnOffersFetched();
                return;
            }

            _externalId = EB.Dot.String("externalTrkid", data, _externalId);
            int end = _externalId.LastIndexOf(':');

            _externalId = _externalId.Substring(0, end + 1);//去掉平台数据,后面用到的自己去拼,处理多平台问题
            _sale       = null;
            _bonusItems.Clear();
            _payouts.Clear();
            _enumerated = false;

            var currentSet = EB.Dot.Find <object>("data.payoutSets.0", data);

            if (currentSet != null)
            {
                var sale = EB.Dot.Object("sale", currentSet, null);
                if (sale != null)
                {
                    _sale = new PayoutSale(sale);
                }

                var bonus = EB.Dot.Array("redeemers", currentSet, new ArrayList());
                foreach (object candidate in bonus)
                {
                    Hashtable item = candidate as Hashtable;
                    if (item != null)
                    {
                        RedeemerItem redeemerItem = new RedeemerItem(item);
                        if (redeemerItem.IsValid == true)
                        {
                            _bonusItems.Add(redeemerItem);
                        }
                    }
                }

                var payouts = Dot.Array("payouts", currentSet, new ArrayList());
                EB.Debug.Log("【商城】加载商品成功,数量:{0}", payouts.Count);
                foreach (Hashtable payout in payouts)
                {
                    var item = new EB.IAP.Item(_externalId, payout);
                    _payouts.Add(item);
                }
            }
            _iapManager.Enumerate(_payouts);

            _config.Listener.OnOffersFetchSuceeded();
        }
 public bool IsSameItem(RedeemerItem candidate)
 {
     return((this.Type == candidate.Type) && (this.Data == candidate.Data));
 }