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)));
        }
 public BalanceTopupEvent(BalanceTopupSource source, BalanceTopupAction action)
 {
     this.Source = source;
     this.Action = action;
 }