public void RetrieveProducts(ProductListDelegate callback)
        {
            if (_storeObject == null)
            {
                if (callback != null)
                    callback(null);
                return;
            }

            _storeObject.RetrieveProducts(callback);
        }
        public void RetrieveProducts(ProductListDelegate callback)
        {
            if (_store == null ) return;
            Dispatcher.InvokeOnUIThread(async () =>
            {
                try
                {
                    var networkAvailable = NetworkInterface.GetIsNetworkAvailable();
                    if (!networkAvailable)
                    {
                        throw new Exception();
                    }

                    var products = await RetrieveProductsAsync();
                    if (callback != null)
                    {
                        Dispatcher.InvokeOnAppThread(() => callback(products));
                    };

                }
                catch
                {
                    if (callback != null)
                    {
                        Dispatcher.InvokeOnAppThread(() => callback(null));
                    };
                }
            });
        }