コード例 #1
0
        public MainController()
        {
            _model = new MainViewModel();

            _nodes = new Dictionary<long, Node>();
            _ways = new ConcurrentBag<Way>();
            _watch = new Stopwatch();

            timerRefresh = new Timer(500);
            timerRefresh.Elapsed += TimerRefreshElapsed;
            timerRefresh.Start();

            _xmlOSMFileLoader = new XmlOSMFileLoader(_ways);
            _dbLoader = new DBLoader(_ways,Model.QueryString);

            _phase = MainControllerStates.None;

            //load current Query String
            var v = ConfigurationManager.ConnectionStrings["CS"];

            if (v != null)
            {
                Model.QueryString = v.ConnectionString;
            }
        }
コード例 #2
0
        public MainController()
        {
            _model = new MainViewModel();

            _nodes = new Dictionary <long, Node>();
            _ways  = new ConcurrentBag <Way>();
            _watch = new Stopwatch();

            timerRefresh          = new Timer(500);
            timerRefresh.Elapsed += TimerRefreshElapsed;
            timerRefresh.Start();

            _xmlOSMFileLoader = new XmlOSMFileLoader(_ways);
            _dbLoader         = new DBLoader(_ways, Model.QueryString);

            _phase = MainControllerStates.None;

            //load current Query String
            var v = ConfigurationManager.ConnectionStrings["CS"];

            if (v != null)
            {
                Model.QueryString = v.ConnectionString;
            }
        }
コード例 #3
0
 public void Clear()
 {
     _nodes.Clear();
     _ways             = new ConcurrentBag <Way>();
     _xmlOSMFileLoader = new XmlOSMFileLoader(_ways);
     _watch.Reset();
     RefreshModel();
     _phase = MainControllerStates.None;
 }
コード例 #4
0
        public void LoadOSMToDatabase(Action <Task> continuation)
        {
            _phase = MainControllerStates.LoadToDb;
            _watch.Start();

            _dbLoader.QueryString = Model.QueryString;
            var tasks = _dbLoader.BeginLoadWays(4);

            Task.Factory.StartNew(() =>
            {
                Task.WaitAll(tasks);
                continuation(null);
                _watch.Stop();
                _phase = MainControllerStates.Idle;
            });
        }
コード例 #5
0
        public void LoadOSMFile(string path, List <string> filters, Action <Task> continuation)
        {
            _phase = MainControllerStates.LoadFromFile;
            _watch.Start();
            var task = _xmlOSMFileLoader.BeginRead(path, filters);

            task.ContinueWith(a =>
            {
                if (a.IsFaulted)
                {
                    MessageBox.Show("Internal Error!");
                }

                continuation(a);
                _model.MaxWaysLeft = _ways.Count;
                _watch.Stop();
                _phase = MainControllerStates.Idle;
                _xmlOSMFileLoader.Dispose();
            });
        }
コード例 #6
0
        public void LoadOSMFile(string path, List<string> filters, Action<Task> continuation)
        {
            _phase = MainControllerStates.LoadFromFile;
            _watch.Start();
            var task = _xmlOSMFileLoader.BeginRead(path, filters);

            task.ContinueWith(a =>
                                  {
                                      if (a.IsFaulted)
                                      {
                                          MessageBox.Show("Internal Error!");
                                      }

                                      continuation(a);
                                      _model.MaxWaysLeft = _ways.Count;
                                      _watch.Stop();
                                      _phase = MainControllerStates.Idle;
                                      _xmlOSMFileLoader.Dispose();
                                  });
        }
コード例 #7
0
 public void Clear()
 {
     _nodes.Clear();
     _ways = new ConcurrentBag<Way>();
     _xmlOSMFileLoader = new XmlOSMFileLoader(_ways);
     _watch.Reset();
     RefreshModel();
     _phase = MainControllerStates.None;
 }
コード例 #8
0
        public void LoadOSMToDatabase(Action<Task> continuation)
        {
            _phase = MainControllerStates.LoadToDb;
            _watch.Start();

            _dbLoader.QueryString = Model.QueryString;
            var tasks = _dbLoader.BeginLoadWays(4);

            Task.Factory.StartNew(() =>
                                      {
                                          Task.WaitAll(tasks);
                                          continuation(null);
                                          _watch.Stop();
                                          _phase = MainControllerStates.Idle;
                                      });
        }