/// <summary>
        /// Loads quote summaries for the subscription
        /// </summary>
        public async void LoadQuoteSummariesAsync()
        {
            BusyMessage = Resources.LoadingQuoteSummariesMessage;

            // get the data service url
            var url = new Uri(ConfigurationManager.AppSettings["DataServiceUrl"]);

            // create repository
            var repository = new MarketDataRepository(url);

            // build url to query
            var queryUrl = string.Format("GetQuoteSummaries?subscriptionId={0}", Subscription.ID);

            // get quote summaries
            var quoteSummaries =
                await Task.Factory.StartNew(() =>
                    repository.Execute<SubscriptionQuoteSummary>(new Uri(queryUrl, UriKind.Relative), "GET", false));

            // set quote summaries
            Application.Current.Dispatcher.Invoke(() =>
                {
                    // set quote summaries
                    QuoteSummaries = new ObservableCollection<SubscriptionQuoteSummary>(quoteSummaries);

                    // clear busy message 
                    BusyMessage = null;
                });
        }
        /// <summary>
        /// Asynchronously loads subscriptions
        /// </summary>
        public async void LoadAsync()
        {
            // set busy message
            BusyMessage = Resources.LoadingSubscriptionsMessage;

            // get the data service url
            var url = new Uri(ConfigurationManager.AppSettings["DataServiceUrl"]);

            // create repository
            var repository = new MarketDataRepository(url);

            // create collection into which to load data
            IEnumerable<DataProvider> dataProviders = null;
            IEnumerable<StockListProvider> stockListProviders = null;
            IEnumerable<Subscription> subscriptions = null;

            // load data async
            await Task.Factory.StartNew(() =>
                 {
                     dataProviders = repository.DataProviders.Execute();

                     stockListProviders = repository.StockListProviders.Execute();

                     subscriptions = repository.Subscriptions.Expand("DataProvider, StockListProvider").Execute();
                 });

            Application.Current.Dispatcher.Invoke(() =>
            {
                // set subscriptions
                DataProviders = new ObservableCollection<DataProvider>(dataProviders);
                StockListProviders = new ObservableCollection<StockListProvider>(stockListProviders);
                Subscriptions = new ObservableCollection<SubscriptionViewModel>(subscriptions.Select(s => new SubscriptionViewModel(s)));

                // clear busy message
                BusyMessage = string.Empty;
            });
        }