Exemple #1
0
		private void menuItemServiceDocumentConverter_Click(object sender, EventArgs e)
		{
			openScenarioDialog.Title = "Выберите сценарий, созданный в предыдущей версии системы";
			openScenarioDialog.Filter = "Сценарии предыдущих версий|*.scenario";
			if (openScenarioDialog.ShowDialog(this) != DialogResult.OK) return;

			var scenario = new FileInfo(openScenarioDialog.FileName);
			var nameFrom = scenario.FullName;
			if (!nameFrom.EndsWith(".scenario")) nameFrom += ".scenario";

			var nameTo = Path.Combine(scenario.DirectoryName, scenario.Name + ScenarioDocumentExtension);
			if (!nameTo.EndsWith(ScenarioDocumentExtension)) nameTo += ScenarioDocumentExtension;

			var cwd = new CancellableWorkerDialog
			          	{
			          		Information = "Производится конвертация файла сценария, созданного в более ранней версии системы, в наиболее оптимальный формат. Продолжительность этого процесса зависит от количества ветвей дерева сценария.\n\nНа медленных компьютерах эта процедура может занять продолжительное время.",
			          		Cancellable = false,
										UnknownProgress = true,
			          	};

			cwd.Worker = x =>
				{
					x.UpdateProgress(0, "Изучение файла сценария");
					var prev = new ScenarioDepot {Vault = VaultApi.OpenZip(nameFrom)};
					var curr = new ScenarioDepot {Vault = VaultApi.OpenZip(nameTo)};

					var a = prev.Cast<ScenarioNode>();
					var b = curr.Cast<ScenarioNode>();

					x.UpdateProgress(0, "Конвертация Общих Характеристик");
					MergeNodes(a.ElementAt(0), b.ElementAt(0));

					x.UpdateProgress(0, "Конвертация Характеристик Объекта");
					MergeNodes(a.ElementAt(1), b.ElementAt(1));

					x.UpdateProgress(99, "Создание нового документа");
					curr.Save();
					x.UpdateProgress(0, "Почти все готово");
				};

			if (cwd.ShowDialog(this) != DialogResult.OK) return;
		}
Exemple #2
0
		private void menuItemNewAppraisal_Click(object sender, EventArgs e)
		{
			openScenarioDialog.Title = "Выберите сценарий для создаваемого отчета";
			openScenarioDialog.Filter = "Сценарии|*" + ScenarioDocumentExtension;
#if DEBUG && USE_TDISK
			openScenarioDialog.InitialDirectory = @"T:\";
#endif
			if (openScenarioDialog.ShowDialog(this) != DialogResult.OK) return;

			saveAsDialog.Title = "Введите имя файла отчета";
			saveAsDialog.Filter = "Отчеты|*" + ApprasialDocumentExtension;
#if DEBUG && USE_TDISK
			saveAsDialog.InitialDirectory = @"T:\";
#endif
			if (saveAsDialog.ShowDialog(this) != DialogResult.OK) return;

			var report = new FileInfo(saveAsDialog.FileName);
			if (report.Exists) report.Delete();

			var nameTo = report.FullName;
			if (!nameTo.EndsWith(ApprasialDocumentExtension)) nameTo += ApprasialDocumentExtension;

			var scenario = new FileInfo(openScenarioDialog.FileName);
			var nameFrom = scenario.FullName;
			if (!nameFrom.EndsWith(ScenarioDocumentExtension)) nameFrom += ScenarioDocumentExtension;

			var cwd = new CancellableWorkerDialog
			          	{
			          		Information = "Производится создание файла отчета, интеграция дерева сценария и предварительная оптимизация плана расчета. Продолжительность этого процесса зависит от количества ветвей дерева сценария.\n\nНа медленных компьютерах эта процедура может занять продолжительное время.",
			          		Cancellable = false,
			          		UnknownProgress = true,
			          	};

			cwd.Worker = x =>
				{
					x.UpdateProgress(0, "Создание файла отчета");
					File.Copy(nameFrom, nameTo);
					x.UpdateProgress(0, "Интеграция дерева сценариев");
					var scenarioDepot = new ScenarioDepot {Vault = VaultApi.OpenZip(nameTo),};
					x.UpdateProgress(0, "Оптимизация плана расчета");
					scenarioDepot.Save();
					x.UpdateProgress(0, "Почти все готово");
					OpenScenarionWindow(nameTo, scenarioDepot);
				};

			if (cwd.ShowDialog(this) != DialogResult.OK) return;
			InWork = true;
		}