public override System.Threading.Tasks.Task <GetSkuDetailsResponse> Execute(IBillingService service)
        {
            this.TCS = new System.Threading.Tasks.TaskCompletionSource <GetSkuDetailsResponse>();

            var b = new Bundle();

            b.PutStringArrayList(Consts.GET_SKU_DETAILS_ITEM_LIST, m_SKUs);
            var skuDetails = service.InAppService.GetSkuDetails(3, service.MainContext.PackageName, this.m_itemType, b);

            if (!skuDetails.ContainsKey(Consts.RESPONSE_GET_SKU_DETAILS_LIST))
            {
                int response = Utils.GetResponseCodeFromBundle(skuDetails);
                if (response != Consts.BILLING_RESPONSE_RESULT_OK)
                {
                    Utils.LogError(string.Format("SkueDetails.Execute failed. Message : {0}", Utils.GetResponseDesc(response)));
                    this.TCS.SetResult(new GetSkuDetailsResponse(response));
                    return(this.TCS.Task);
                }
                else
                {
                    Utils.LogError("SkueDetails.Execute failed. Neither an error nor a detail list.");
                    this.TCS.SetResult(new GetSkuDetailsResponse(Consts.BAD_RESPONSE));
                    return(this.TCS.Task);
                }
            }

            var responseList = skuDetails.GetStringArrayList(Consts.RESPONSE_GET_SKU_DETAILS_LIST);
            var skus         = new List <SkuDetail>();

            responseList.ToList().ForEach(x =>
            {
                var d = new SkuDetail(this.m_itemType, x);
                skus.Add(d);
                Utils.LogDebug("SkuDetail: " + d);
                service.CurrentInventory.AddSkuDetails(d);
            });

            this.TCS.SetResult(new GetSkuDetailsResponse(skus));
            return(this.TCS.Task);
        }
Exemple #2
0
 /// <summary>
 /// Add an SkuDetail object.
 /// </summary>
 /// <param name="d"></param>
 public void AddSkuDetails(SkuDetail d)
 {
     m_skuMap[d.Sku] = d;
 }
		/// <summary>
		/// Add an SkuDetail object.
		/// </summary>
		/// <param name="d"></param>
		public void AddSkuDetails(SkuDetail d)
		{
			m_skuMap[d.Sku] = d;
		}