Beispiel #1
0
        private void PollForShippingRatesAsync()
        {
            Status shippingStatus = Status.Unknown;

            task = client.GetShippingRatesForCheckout(Checkout, async(shippingRates, status, error) => {
                shippingStatus = status;

                if (error != null)
                {
                    WillChangeValue("isFinished");
                    done = true;
                    DidChangeValue("isFinished");

                    FailedToReceiveShippingRates?.Invoke(this, error);
                }
                else if (shippingStatus == Status.Complete)
                {
                    ShippingRates = shippingRates;

                    WillChangeValue("isFinished");
                    done = true;
                    DidChangeValue("isFinished");

                    DidReceiveShippingRates(this, ShippingRates);
                }
                else if (shippingStatus == Status.Processing)
                {
                    await Task.Delay(500);
                    PollForShippingRatesAsync();
                }
            });
        }