private async void LoadData()
        {
            _timer.Stop();

            try
            {
                using (var webClient = new WebClient())
                {
                    foreach (var server in MainSettings.Default.Servers)
                    {
                        var     dataPointJson   = webClient.DownloadString(BuildUrl(server));
                        dynamic dataPointObject = JObject.Parse(dataPointJson);
                        string  url             = dataPointObject.files[0].url;
                        double  timestamp       = dataPointObject.files[0].lastModified;

                        var auctionDataJson = await webClient.DownloadStringTaskAsync(new Uri(url));

                        var auctionData = JsonConvert.DeserializeObject <RootObject>(auctionDataJson);
                        Models.Util.InterpretJsonModel(timestamp, server, auctionData, _sessionFactory, this);
                    }

                    using (var session = _sessionFactory.OpenSession())
                    {
                        using (var transaction = session.BeginTransaction())
                        {
                            try
                            {
                                var lastCheck = session.Query <ItemData>().Max(a => (double?)a.TimeStamp);
                                if (lastCheck.HasValue)
                                {
                                    var dataPoints =
                                        session.QueryOver <ItemData>()
                                        .Select(Projections.CountDistinct("TimeStamp"))
                                        .FutureValue <int>()
                                        .Value;
                                    _lastTimeStamp = lastCheck.Value;
                                    _totalRecords  = dataPoints;
                                }

                                transaction.Commit();
                                UpdateInfo(_lastTimeStamp, _totalRecords, (int)(_timer.TimeLeft / 1000));
                            }
                            catch (Exception e)
                            {
                                transaction.Rollback();
                                ShowError(e);
                            }
                        }
                    }
                }
            }
            catch (Exception e)
            {
                ShowError(e);
            }

            _timer.Start();
        }