public static void LoadExistingMission(string fileName)
        {
            var loadingDialog = new LoadingDialog {
                Owner = MainWindow.Instance
            };

            loadingDialog.Loaded += (s, e) => Utils.InvokeInNewThread(delegate
            {
                var mission        = Mission.FromFile(fileName);
                loadingDialog.Text = "Scanning";
                using (var unitSync = new UnitSync(Settings.Default.SpringPath))
                {
                    unitSync.LoadingStatusChanged += (se, ea) => loadingDialog.Text = ea.Data;
                    loadingDialog.Text             = "Loading Map";
                    mission.Map        = LoadMap(unitSync, mission.MapName);
                    loadingDialog.Text = "Loading Mod";
                    mission.Mod        = LoadMod(unitSync, mission.ModName);
                }

                loadingDialog.Text = "Finalizing";
                mission.PostLoad();
                Settings.Default.MissionPath = fileName;
                Settings.Default.Save();
                loadingDialog.Invoke(delegate
                {
                    loadingDialog.Close();
                    MainWindow.Instance.SavePath = fileName;
                    MainWindow.Instance.Mission  = mission;
                });
            });
            loadingDialog.ShowDialog();
        }
Exemple #2
0
        public static void SendMissionWithDialog(Mission mission, string password, int?missionId)
        {
            var loading = new LoadingDialog {
                Text = "Uploading Mission", Owner = MainWindow.Instance
            };

            loading.Loaded += delegate
            {
                Utils.InvokeInNewThread(delegate
                {
                    SendMission(mission, password, missionId);
                    loading.Invoke(loading.Close);
                });
            };
            loading.ShowDialog();
        }
#pragma warning restore 612,618

        void OpenButton_Click(object sender, RoutedEventArgs e)
        {
            var loadingDialog = new LoadingDialog {
                Text = "Opening Mission", Owner = this
            };
            var selectedMission = (Mission)DataGrid.SelectedItem;

            if (selectedMission == null)
            {
                return;
            }
            Utils.InvokeInNewThread(delegate
            {
                try
                {
                    var client      = MissionServiceClientFactory.MakeClient();
                    var missionData = client.GetMission(selectedMission.Name);
                    loadingDialog.Invoke(delegate
                    {
                        loadingDialog.Close();
                        var filter         = "Spring Mod Archive (*.sdz)|*.sdz|All files (*.*)|*.*";
                        var saveFileDialog = new SaveFileDialog {
                            DefaultExt = "sdz", Filter = filter, RestoreDirectory = true
                        };
                        if (saveFileDialog.ShowDialog() == true)
                        {
                            File.WriteAllBytes(saveFileDialog.FileName, missionData.Mutator.ToArray());
                        }
                        WelcomeDialog.LoadExistingMission(saveFileDialog.FileName);
                    });
                }
                catch (FaultException <ExceptionDetail> ex)
                {
                    MessageBox.Show(ex.Message);
                }
            });
            loadingDialog.ShowDialog();
        }
#pragma warning restore 612,618

		void OpenButton_Click(object sender, RoutedEventArgs e)
		{
			var loadingDialog = new LoadingDialog { Text = "Opening Mission", Owner = this };
			var selectedMission = (Mission)DataGrid.SelectedItem;
			if (selectedMission == null) return;
			Utils.InvokeInNewThread(delegate
				{
					try
					{
						var client = MissionServiceClientFactory.MakeClient();
						var missionData = client.GetMission(selectedMission.Name);
						loadingDialog.Invoke(delegate
							{
								loadingDialog.Close();
								var filter = "Spring Mod Archive (*.sdz)|*.sdz|All files (*.*)|*.*";
								var saveFileDialog = new SaveFileDialog { DefaultExt = "sdz", Filter = filter, RestoreDirectory = true };
								if (saveFileDialog.ShowDialog() == true) File.WriteAllBytes(saveFileDialog.FileName, missionData.Mutator.ToArray());
								WelcomeDialog.LoadExistingMission(saveFileDialog.FileName);
							});
					}
					catch (FaultException<ExceptionDetail> ex)
					{
						MessageBox.Show(ex.Message);
					}
				});
			loadingDialog.ShowDialog();
		}
		public static void SendMissionWithDialog(Mission mission, string password, int? missionId)
		{
			var loading = new LoadingDialog { Text = "Uploading Mission", Owner = MainWindow.Instance };
			loading.Loaded += delegate
				{
					Utils.InvokeInNewThread(delegate
						{
							SendMission(mission, password, missionId);
							loading.Invoke(loading.Close);
						});
				};
			loading.ShowDialog();
		}