public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            Title = "Shipping Rates";

            // Setup both operations to run
            var shopOperation = new GetShopOperation(client);

            shopOperation.DidReceiveShop += (op, shop) => {
                currencyFormatter              = new NSNumberFormatter();
                currencyFormatter.NumberStyle  = NSNumberFormatterStyle.Currency;
                currencyFormatter.CurrencyCode = shop.Currency;
            };
            shopOperation.FailedToReceiveShop += (op, error) => {
                Console.WriteLine("Failed to retrieve shop: {0}", error);
            };
            NSOperationQueue.MainQueue.AddOperation(shopOperation);

            var shippingOperation = new GetShippingRatesOperation(client, checkout);

            shippingOperation.DidReceiveShippingRates += (op, rates) => {
                shippingRates = rates;
            };
            shippingOperation.FailedToReceiveShippingRates += (op, error) => {
                Console.WriteLine("Failed to retrieve shipping rates: {0}", error);
            };
            NSOperationQueue.MainQueue.AddOperation(shippingOperation);

            UIApplication.SharedApplication.NetworkActivityIndicatorVisible = true;

            // Ensure both operations are completed before we reload the table view
            var blockOperation = NSBlockOperation.Create(() => {
                UIApplication.SharedApplication.NetworkActivityIndicatorVisible = false;
                TableView.ReloadData();
            });

            blockOperation.AddDependency(shopOperation);
            blockOperation.AddDependency(shippingOperation);
            NSOperationQueue.MainQueue.AddOperation(blockOperation);

            allOperations = new NSOperation[] {
                blockOperation,
                shopOperation,
                shippingOperation
            };
        }
        public override void ViewDidLoad()
        {
            base.ViewDidLoad ();

            Title = "Shipping Rates";

            // Setup both operations to run
            var shopOperation = new GetShopOperation (client);
            shopOperation.DidReceiveShop += (op, shop) => {
                currencyFormatter = new NSNumberFormatter ();
                currencyFormatter.NumberStyle = NSNumberFormatterStyle.Currency;
                currencyFormatter.CurrencyCode = shop.Currency;
            };
            shopOperation.FailedToReceiveShop += (op, error) => {
                Console.WriteLine ("Failed to retrieve shop: {0}", error);
            };
            NSOperationQueue.MainQueue.AddOperation (shopOperation);

            var shippingOperation = new GetShippingRatesOperation (client, checkout);
            shippingOperation.DidReceiveShippingRates += (op, rates) => {
                shippingRates = rates;
            };
            shippingOperation.FailedToReceiveShippingRates += (op, error) => {
                Console.WriteLine ("Failed to retrieve shipping rates: {0}", error);
            };
            NSOperationQueue.MainQueue.AddOperation (shippingOperation);

            UIApplication.SharedApplication.NetworkActivityIndicatorVisible = true;

            // Ensure both operations are completed before we reload the table view
            var blockOperation = NSBlockOperation.Create (() => {
                UIApplication.SharedApplication.NetworkActivityIndicatorVisible = false;
                TableView.ReloadData ();
            });
            blockOperation.AddDependency (shopOperation);
            blockOperation.AddDependency (shippingOperation);
            NSOperationQueue.MainQueue.AddOperation (blockOperation);

            allOperations = new NSOperation[] {
                blockOperation,
                shopOperation,
                shippingOperation
            };
        }