void mapTab_MouseMove(object sender, MouseEventArgs e)
        {
            cursorPosition = e.GetPosition(mapTab.MapCanvas);
            var cursor  = cursorPosition.Value;
            var planets = from planet in mapTab.MapCanvas.Children.OfType <PlanetIcon>()
                          let distance = Math.Sqrt(Math.Pow(cursor.X - planet.X, 2) + Math.Pow(cursor.Y - planet.Y, 2))
                                         where distance < orderClickProximity / mapTab.ZoomControl.Zoom
                                         orderby distance
                                         select planet;

            cursorPlanet = planets.FirstOrDefault();
        }
        void mapTab_MouseLeftButtonDown(object sender, MouseButtonEventArgs _)
        {
            mapTab.MapCanvas.MouseLeftButtonDown     -= mapTab_MouseLeftButtonDown;
            Application.Current.RootVisual.MouseMove -= mapTab_MouseMove;
            cursorPosition = null;
            if (cursorPlanet == null)
            {
                return;
            }
            var destination = cursorPlanet;

            cursorPlanet = null;
            var service = new PlanetWarsServiceClient();

            service.OrderFleetCompleted += (s, e) =>
            {
                transit.Fleets = e.Result;
                MessageBox.Show(cursorPlanet.Name + " called, they want their transit back!");
            };
            service.OrderFleetAsync(App.UserName, App.Password, transit.Fleets.FleetID, destination.Body.CelestialObjectID, 0);
        }