Example #1
0
        private void ReloadPurchasability()
        {
            purchaseState = PurchaseFeatureState.Loading;

            purchaseErrorStatus = new AutoyaStatus();

            PurchaseRouter.HttpRequestHeaderDelegate httpRequestHeaderDel = (p1, p2, p3, p4) =>
            {
                return(httpRequestHeaderDelegate(p1, p2, p3, p4));
            };

            PurchaseRouter.HttpResponseHandlingDelegate httpResponseHandlingDel = (p1, p2, p3, p4, p5, p6, p7) =>
            {
                Action <string, int, string, AutoyaStatus> p7dash = (q1, q2, q3, status) =>
                {
                    // set autoyaStatus error if exist.
                    if (status.HasError())
                    {
                        purchaseErrorStatus = status;
                    }

                    p7(q1, q2, q3);
                };

                httpResponseHandlingDelegate(
                    p1,
                    p2,
                    p3,
                    p4,
                    p5,
                    p6,
                    p7dash
                    );
            };

            _purchaseRouter = new PurchaseRouter(
                mainthreadDispatcher.Commit,
                productSourceData => OnLoadProductsResponse(productSourceData),
                productId => OnTicketRequest(productId),
                ticketData => OnTicketResponse(ticketData),
                () =>
            {
                purchaseState = PurchaseFeatureState.Ready;
                OnPurchaseReady();
            },
                (err, code, reason) =>
            {
                purchaseState = PurchaseFeatureState.ReadyFailed;

                var cor = OnPurchaseReadyFailed(err, code, reason, purchaseErrorStatus);
                mainthreadDispatcher.Commit(cor);
            },
                onPaidPurchaseDoneInBackground,
                httpRequestHeaderDel,
                httpResponseHandlingDel
                );
        }
        private void ReloadPurchasability()
        {
            purchaseFeatureState = PurchaseFeatureState.Loading;

            _purchaseRouter = new PurchaseRouter(
                mainthreadDispatcher.Commit,
                productSourceData => {
                /*
                 *      handle received product datas to OverridePoint.
                 */
                return(OnLoadProductsResponse(productSourceData));
            },
                ticketData => {
                return(OnTicketResponse(ticketData));
            },
                () => {
                purchaseReadyRetryCount = 0;
                purchaseFeatureState    = PurchaseFeatureState.Ready;
                OnPurchaseReady();
            },
                (err, reason, autoyaStatus) => {
                purchaseFeatureState = PurchaseFeatureState.Reloading;

                if (purchaseReadyRetryCount == PurchaseSettings.PEADY_MAX_RETRY_COUNT)
                {
                    purchaseReadyRetryCount = 0;
                    OnPurchaseReadyFailed(err, reason, autoyaStatus);
                    return;
                }

                mainthreadDispatcher.Commit(ReloadPurchaseFeature());
            },
                httpRequestHeaderDelegate,
                httpResponseHandlingDelegate
                );
        }