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))); }
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; } })); }
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); }
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); } }
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(); })); }
public VotesPackViewModel(VotesPack votesPack) { this.VotesPack = votesPack; }