Beispiel #1
0
 private void PurchaseVotesPackWithMobile(VotesPack votesPack, Action successCallback, Action <BackendResult <StorePurchaseResult, ResultCode> > errorCallback)
 {
     this.BuyVotes(new StoreBuyProductParams(StoreProductType.votes, votesPack.ProductId), (Action <BackendResult <StorePurchaseResult, ResultCode> >)(result =>
     {
         if (result.ResultCode == ResultCode.Succeeded)
         {
             Action action = successCallback;
             if (action == null)
             {
                 return;
             }
             action();
         }
         else
         {
             Action <BackendResult <StorePurchaseResult, ResultCode> > action = errorCallback;
             if (action == null)
             {
                 return;
             }
             BackendResult <StorePurchaseResult, ResultCode> backendResult = result;
             action(backendResult);
         }
     }));
 }
        public static void BuyVotesPack(VotesPack votesPack, BalanceTopupSource source, Action successCallback = null, Action errorCallback = null)
        {
            FullscreenLoader loader = new FullscreenLoader();

            loader.Show(null, true);
            EventAggregator.Current.Publish((object)new BalanceTopupEvent(source, BalanceTopupAction.purchase_click));
            StoreService.Instance.PurchaseVotesPack(votesPack, (Action)(() =>
            {
                EventAggregator.Current.Publish((object)new BalanceTopupEvent(source, BalanceTopupAction.success));
                StorePurchaseManager.UpdateBalanceData((Action)(() =>
                {
                    loader.Hide(false);
                    Action action = successCallback;
                    if (action == null)
                    {
                        return;
                    }
                    action();
                }));
            }), (Action <BackendResult <StorePurchaseResult, ResultCode> >)(result =>
            {
                loader.HiddenCallback = (Action <FullscreenLoaderHiddenEventArgs>)(args => StorePurchaseManager.HandleStorePurchaseError(result, errorCallback));
                loader.Hide(false);
            }), (Action)(() => loader.Hide(false)));
        }
Beispiel #3
0
        private void PurchaseVotesPackWithInApps(VotesPack votesPack, Action successCallback, Action <BackendResult <StorePurchaseResult, ResultCode> > errorCallback, Action cancelledCallback)
        {
            InAppPurchaseService.RequestProductPurchase(votesPack.MerchantProductId, (Action <InAppProductPurchaseResult>)(purchaseResult =>
            {
                switch (purchaseResult.Status)
                {
                case InAppProductPurchaseStatus.Cancelled:
                    Action action1 = cancelledCallback;
                    if (action1 == null)
                    {
                        break;
                    }
                    action1();
                    break;

                case InAppProductPurchaseStatus.Purchased:
                    this.FulfillPurchases(votesPack.MerchantProductId, successCallback, errorCallback);
                    break;

                case InAppProductPurchaseStatus.Error:
                    Action <BackendResult <StorePurchaseResult, ResultCode> > action2 = errorCallback;
                    if (action2 == null)
                    {
                        break;
                    }
                    BackendResult <StorePurchaseResult, ResultCode> backendResult = new BackendResult <StorePurchaseResult, ResultCode>(ResultCode.Succeeded, StorePurchaseResult.GetForFailedPurchaseState());
                    action2(backendResult);
                    break;
                }
            }));
        }
Beispiel #4
0
        private static void CreateVotesPacks(IEnumerable <StockItem> stockItems, IDictionary <string, string> inAppPrices = null, Action <List <VotesPack> > callback = null)
        {
            List <VotesPack> votesPackList = new List <VotesPack>();

            foreach (StockItem stockItem in stockItems.Where <StockItem>((Func <StockItem, bool>)(stockItem => stockItem.product != null)))
            {
                StoreProduct product           = stockItem.product;
                int          votes             = product.votes;
                string       merchantProductId = stockItem.merchant_product_id;
                VotesPack    votesPack         = new VotesPack()
                {
                    ProductId         = product.id,
                    MerchantProductId = merchantProductId,
                    Title             = product.title,
                    VotesCount        = votes
                };
                if (inAppPrices != null && inAppPrices.ContainsKey(merchantProductId))
                {
                    votesPack.PaymentType = AccountPaymentType.inapp;
                    votesPack.PriceStr    = inAppPrices[merchantProductId];
                }
                else
                {
                    votesPack.PaymentType = AccountPaymentType.money;
                    votesPack.PriceStr    = stockItem.price_str;
                }
                votesPackList.Add(votesPack);
            }
            if (callback == null)
            {
                return;
            }
            callback(votesPackList);
        }
Beispiel #5
0
 public void PurchaseVotesPack(VotesPack votesPack, Action successCallback, Action <BackendResult <StorePurchaseResult, ResultCode> > errorCallback, Action cancelledCallback)
 {
     if (votesPack.PaymentType == AccountPaymentType.inapp)
     {
         this.FulfillPurchases(votesPack.MerchantProductId, (Action)(() => this.PurchaseVotesPackWithInApps(votesPack, successCallback, errorCallback, cancelledCallback)), errorCallback);
     }
     else
     {
         this.PurchaseVotesPackWithMobile(votesPack, successCallback, errorCallback);
     }
 }
Beispiel #6
0
 private void ProcessData(BalanceData balanceData, Action callback = null)
 {
     BalanceRefillViewModel.LoadUnfulfilledConsumables((Action <List <InAppUnfulfilledProduct> >)(unfulfilledProducts =>
     {
         BalanceData balanceData1 = balanceData;
         this.Balance             = balanceData1 != null ? balanceData1.Balance : 0;
         this.VotesPacks          = new List <VotesPackViewModel>();
         BalanceData balanceData2 = balanceData;
         List <VotesPack> m0List;
         if (balanceData2 == null)
         {
             m0List = null;
         }
         else
         {
             List <VotesPack> votesPacks = balanceData2.VotesPacks;
             m0List = votesPacks != null ? Enumerable.ToList <VotesPack>(Enumerable.OrderBy <VotesPack, int>(votesPacks, (Func <VotesPack, int>)(votesPack => votesPack.VotesCount))) : null;
         }
         List <VotesPack> votesPackList = m0List;
         if (votesPackList != null)
         {
             for (int index = 0; index < votesPackList.Count; ++index)
             {
                 VotesPack votesPack = votesPackList[index];
                 bool flag           = Enumerable.Any <InAppUnfulfilledProduct>(unfulfilledProducts, (Func <InAppUnfulfilledProduct, bool>)(product => product.ProductId == votesPack.MerchantProductId));
                 VotesPackViewModel votesPackViewModel = new VotesPackViewModel(votesPack);
                 votesPackViewModel.IconCoinId         = index + 1;
                 int num = !flag ? 1 : 0;
                 votesPackViewModel.CanPurchase = num != 0;
                 this.VotesPacks.Add(votesPackViewModel);
             }
         }
         Execute.ExecuteOnUIThread((Action)(() =>
         {
             // ISSUE: type reference
             // ISSUE: method reference
             this.NotifyPropertyChanged <int>(() => this.Balance);
             // ISSUE: type reference
             // ISSUE: method reference
             this.NotifyPropertyChanged <List <VotesPackViewModel> >(() => this.VotesPacks);
         }));
         Action action = callback;
         if (action == null)
         {
             return;
         }
         action();
     }));
 }
 private void ProcessData(BalanceData balanceData, Action callback = null)
 {
     BalanceRefillViewModel.LoadUnfulfilledConsumables((Action <List <InAppUnfulfilledProduct> >)(unfulfilledProducts =>
     {
         BalanceData balanceData1 = balanceData;
         this.Balance             = balanceData1 != null ? balanceData1.Balance : 0;
         this.VotesPacks          = new List <VotesPackViewModel>();
         BalanceData balanceData2 = balanceData;
         List <VotesPack> votesPackList1;
         if (balanceData2 == null)
         {
             votesPackList1 = (List <VotesPack>)null;
         }
         else
         {
             List <VotesPack> votesPacks = balanceData2.VotesPacks;
             votesPackList1 = votesPacks != null ? votesPacks.OrderBy <VotesPack, int>((Func <VotesPack, int>)(votesPack => votesPack.VotesCount)).ToList <VotesPack>() : (List <VotesPack>)null;
         }
         List <VotesPack> votesPackList2 = votesPackList1;
         if (votesPackList2 != null)
         {
             for (int index = 0; index < votesPackList2.Count; ++index)
             {
                 VotesPack votesPack = votesPackList2[index];
                 bool flag           = unfulfilledProducts.Any <InAppUnfulfilledProduct>((Func <InAppUnfulfilledProduct, bool>)(product => product.ProductId == votesPack.MerchantProductId));
                 VotesPackViewModel votesPackViewModel = new VotesPackViewModel(votesPack);
                 votesPackViewModel.IconCoinId         = index + 1;
                 int num = !flag ? 1 : 0;
                 votesPackViewModel.CanPurchase = num != 0;
                 this.VotesPacks.Add(votesPackViewModel);
             }
         }
         Execute.ExecuteOnUIThread((Action)(() =>
         {
             this.NotifyPropertyChanged <int>((Expression <Func <int> >)(() => this.Balance));
             this.NotifyPropertyChanged <List <VotesPackViewModel> >((Expression <Func <List <VotesPackViewModel> > >)(() => this.VotesPacks));
         }));
         Action action = callback;
         if (action == null)
         {
             return;
         }
         action();
     }));
 }
Beispiel #8
0
 public VotesPackViewModel(VotesPack votesPack)
 {
     this.VotesPack = votesPack;
 }