using NaGet.Packages.Install;\r
using NaGet.Packages;\r
using NaGet.Net;\r
+using NaGet.Tasks;\r
\r
namespace NaGet.SubCommands\r
{\r
if (downloader == null) {\r
downloader = new Downloader();\r
downloader.DownloadEventRaised += delegate(object sender, DownloadEventArgs e) {\r
- if (e.Type == DownloadEventType.DOWNLOADING && e.TaskProgressPercent > 0) {\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.PING, string.Empty, GetProgressPercent(NaGetTaskSetEventType.PING, e.TaskProgressPercent));\r
+ if (e.DownloadTaskType == DownloadEventType.DOWNLOADING && e.ProgressPercent > 0) {\r
+ RaiseTaskSetEvent(TaskEventType.PING, string.Empty, GetProgressPercent(TaskEventType.PING, e.ProgressPercent));\r
}\r
};\r
}\r
\r
private void initializeMainTaskSetNames()\r
{\r
- List<string> taskSetNames = new List<string>();\r
+ taskSetNames = new List<string>();\r
\r
for (int i =0; i < Installations.Length; i++) {\r
taskSetNames.Add(string.Format("取得: {0}", Installations[i].ToString()));\r
}\r
taskSetNames.Add(string.Format("リスト更新: {0}", NaGet.Env.ArchiveInstalledPackageListFile));\r
taskSetNames.Add(string.Format("リスト更新: {0}", NaGet.Env.SystemInstalledPackageListFile));\r
- \r
- TaskSetNames = taskSetNames.ToArray();\r
}\r
\r
public override void Run()\r
{\r
currentTaskSetIndex = 0;\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.STARTED, "インストール処理開始");\r
+ RaiseTaskSetEvent(TaskEventType.STARTED, "インストール処理開始");\r
\r
{\r
// ハッシュ非適合なインストーラの表\r
List<Installation> invalidInstallers = null;\r
\r
- while (invalidInstallers == null || invalidInstallers.Count > 0) {\r
+ do {\r
currentTaskSetIndex = 0;\r
packageInstallerDownloaded = false;\r
\r
packageInstallerDownloaded = true;\r
\r
\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.STARTED_TASKSET, TaskSetNames[currentTaskSetIndex]);\r
+ RaiseTaskSetEvent(TaskEventType.STARTED_SUBTASK, taskSetNames[currentTaskSetIndex]);\r
\r
// ハッシュの壊れているインストーラーを取得\r
invalidInstallers = runCheckHashForInstaller();\r
\r
switch (result) {\r
case NaGetTaskQueryResult.CONTINUE:\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.WARNING, "ハッシュの非整合を無視してインストールを継続");\r
+ RaiseTaskSetEvent(TaskEventType.WARNING, "ハッシュの非整合を無視してインストールを継続");\r
invalidInstallers.Clear(); // ハッシュ非適合パッケージを強制的に抹消\r
break;\r
case NaGetTaskQueryResult.RETRY:\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.INFO, "ダウンロード処理を再試行");\r
+ RaiseTaskSetEvent(TaskEventType.INFO, "ダウンロード処理を再試行");\r
\r
foreach (Installation invalidInst in invalidInstallers) {\r
invalidInst.RemoveDownloadedFile();\r
break;\r
//case NaGetTaskQueryResult.CANCEL:\r
default:\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.CANCELED, "パッケージのインストール処理がキャンセルされました");\r
+ RaiseTaskSetEvent(TaskEventType.CANCELED, "パッケージのインストール処理がキャンセルされました");\r
done = true;\r
return;\r
}\r
}\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.COMPLETED_TASKSET, TaskSetNames[currentTaskSetIndex]);\r
- currentTaskSetIndex ++;\r
- }\r
+ \r
+ // もしハッシュが不適合なソフトがあるならばダウンロード処理からやり直す\r
+ } while (invalidInstallers == null || invalidInstallers.Count > 0);\r
+ RaiseTaskSetEvent(TaskEventType.COMPLETED_SUBTASK, taskSetNames[currentTaskSetIndex]);\r
+ currentTaskSetIndex ++;\r
}\r
\r
foreach (Installation inst in Installations) {\r
- string installTaskMsg = TaskSetNames[currentTaskSetIndex];\r
+ string installTaskMsg = taskSetNames[currentTaskSetIndex];\r
if (inst.Silent && (!inst.SupportsSilentOnly)) {\r
installTaskMsg += " (サイレントインストール)";\r
}\r
\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.STARTED_TASKSET, installTaskMsg);\r
+ RaiseTaskSetEvent(TaskEventType.STARTED_SUBTASK, installTaskMsg);\r
\r
try {\r
\r
inst.OutputDataReceived += this.ReceivedOutputData;\r
int exitCode = inst.Install();\r
if (exitCode != 0) {\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.WARNING, "インストールが正常に終えていない可能性があります。プロセスの終了コード:"+exitCode);\r
+ RaiseTaskSetEvent(TaskEventType.WARNING, "インストールが正常に終えていない可能性があります。プロセスの終了コード:"+exitCode);\r
}\r
\r
pkgListMan.WriteInstallationLog(inst);\r
} catch (Exception e) {\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.ERROR, e.Message);\r
+ RaiseTaskSetEvent(TaskEventType.ERROR, e.Message);\r
done = true;\r
return;\r
}\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.COMPLETED_TASKSET, installTaskMsg);\r
+ RaiseTaskSetEvent(TaskEventType.COMPLETED_SUBTASK, installTaskMsg);\r
currentTaskSetIndex ++;\r
\r
if (cancelCalled) {\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.CANCELED, "パッケージのインストール処理がキャンセルされました");\r
+ RaiseTaskSetEvent(TaskEventType.CANCELED, "パッケージのインストール処理がキャンセルされました");\r
done = true;\r
return;\r
}\r
\r
done = true;\r
\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.COMPLETED, "終了", 100);\r
+ RaiseTaskSetEvent(TaskEventType.COMPLETED, "終了", 100);\r
}\r
\r
\r
if (! inst.IsInstallablePackage()) {\r
string msg = string.Format("{0}はインストールすることができません", inst.ToString());\r
\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.ERROR, msg);\r
+ RaiseTaskSetEvent(TaskEventType.ERROR, msg);\r
done = true;\r
return;\r
}\r
\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.STARTED_TASKSET, TaskSetNames[currentTaskSetIndex]);\r
+ RaiseTaskSetEvent(TaskEventType.STARTED_SUBTASK, taskSetNames[currentTaskSetIndex]);\r
\r
if (! inst.Downloaded) {\r
try {\r
inst.Download(Downloader);\r
- } catch (NaGetTaskCanceledException) {\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.CANCELED, "インストーラーのダウンロード処理がキャンセルされました");\r
+ } catch (TaskCanceledException) {\r
+ RaiseTaskSetEvent(TaskEventType.CANCELED, "インストーラーのダウンロード処理がキャンセルされました");\r
done = true;\r
return;\r
} catch (System.Net.WebException e) {\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.WARNING, e.Message);\r
+ RaiseTaskSetEvent(TaskEventType.WARNING, e.Message);\r
if (System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable()) {\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.ERROR, "ネットワークに接続されていません。");\r
+ RaiseTaskSetEvent(TaskEventType.ERROR, "ネットワークに接続されていません。");\r
} else {\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.ERROR, "ネットワークに接続できませんでした。ネットワークが切断されているか、ファイアウォールによって遮断された可能性があります。");\r
+ RaiseTaskSetEvent(TaskEventType.ERROR, "ネットワークに接続できませんでした。ネットワークが切断されているか、ファイアウォールによって遮断された可能性があります。");\r
}\r
done = true;\r
return;\r
} catch (Exception e) {\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.ERROR, e.Message);\r
+ RaiseTaskSetEvent(TaskEventType.ERROR, e.Message);\r
done = true;\r
return;\r
}\r
}\r
\r
- if (! inst.Downloaded) { // ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83«が完了せずに終わった=失敗=エラー\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.ERROR, string.Format("{0}のインストーラーファイルを正常にダウンロードできませんでした", inst.ToString()));\r
+ if (! inst.Downloaded) { // ã\83\80ã\82¦ã\83³ã\83ã\83¼ã\83\89が完了せずに終わった=失敗=エラー\r
+ RaiseTaskSetEvent(TaskEventType.ERROR, string.Format("{0}のインストーラーファイルを正常にダウンロードできませんでした", inst.ToString()));\r
done = true;\r
return;\r
}\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.COMPLETED_TASKSET, TaskSetNames[currentTaskSetIndex]);\r
+ RaiseTaskSetEvent(TaskEventType.COMPLETED_SUBTASK, taskSetNames[currentTaskSetIndex]);\r
currentTaskSetIndex ++;\r
\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.STARTED_TASKSET, TaskSetNames[currentTaskSetIndex]);\r
+ RaiseTaskSetEvent(TaskEventType.STARTED_SUBTASK, taskSetNames[currentTaskSetIndex]);\r
if (! NaGet.Env.EnableScanInstallerFile) {\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.INFO, "ウイルススキャンを行わない設定のため、ダウンロードしたファイルはウイルススキャンされませんでした");\r
+ RaiseTaskSetEvent(TaskEventType.INFO, "ウイルススキャンを行わない設定のため、ダウンロードしたファイルはウイルススキャンされませんでした");\r
} else if (!scanner.HasScanner) {\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.INFO, "ダウンロードしたファイルはウイルススキャンされませんでした(ウイルススキャンソフトが検出できませんでした)");\r
+ RaiseTaskSetEvent(TaskEventType.INFO, "ダウンロードしたファイルはウイルススキャンされませんでした(ウイルススキャンソフトが検出できませんでした)");\r
} else {\r
try {\r
DownloadScannerResult result = inst.ScanInstallerFile(scanner);\r
\r
switch (result) {\r
case DownloadScannerResult.ScannerNotFound:\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.INFO, "ダウンロードしたファイルはウイルススキャンされませんでした(ウイルススキャンソフトが検出できませんでした)");\r
+ RaiseTaskSetEvent(TaskEventType.INFO, "ダウンロードしたファイルはウイルススキャンされませんでした(ウイルススキャンソフトが検出できませんでした)");\r
break;\r
case DownloadScannerResult.InfectedAndCleaned:\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.ERROR,\r
+ RaiseTaskSetEvent(TaskEventType.ERROR,\r
"インストーラーファイルからウイルス感染が検出されたため、削除されました。");\r
done = true;\r
return;\r
case DownloadScannerResult.InfectedButNotCleaned:\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.ERROR,\r
+ RaiseTaskSetEvent(TaskEventType.ERROR,\r
"インストーラーファイルからウイルス感染が検出されました。");\r
done = true;\r
break;\r
}\r
\r
} catch (System.Runtime.InteropServices.COMException ex) {\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.WARNING,\r
+ RaiseTaskSetEvent(TaskEventType.WARNING,\r
string.Format("{0} (E{1})", ex.Message, ex.ErrorCode));\r
} catch (System.IO.FileNotFoundException ex) {\r
if (ex.InnerException is System.Runtime.InteropServices.COMException) {\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.WARNING,\r
+ RaiseTaskSetEvent(TaskEventType.WARNING,\r
string.Format("{0} (E{1})", ex.InnerException.Message, ((System.Runtime.InteropServices.COMException) ex.InnerException).ErrorCode));\r
}\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.ERROR, "インストーラーファイルがウイルススキャナーによって削除されました。");\r
+ RaiseTaskSetEvent(TaskEventType.ERROR, "インストーラーファイルがウイルススキャナーによって削除されました。");\r
done = true;\r
return;\r
}\r
}\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.COMPLETED_TASKSET, TaskSetNames[currentTaskSetIndex]);\r
+ RaiseTaskSetEvent(TaskEventType.COMPLETED_SUBTASK, taskSetNames[currentTaskSetIndex]);\r
currentTaskSetIndex ++;\r
\r
if (cancelCalled) {\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.CANCELED, "パッケージのインストール処理がキャンセルされました");\r
+ RaiseTaskSetEvent(TaskEventType.CANCELED, "パッケージのインストール処理がキャンセルされました");\r
done = true;\r
return;\r
}\r
\r
int i = 0;\r
foreach (Installation inst in Installations) {\r
- float percent = (CurrentTaskSetIndex+((float)i / Installations.Length))*100f/TaskSetNames.Length;\r
+ float percent = (CurrentTaskSetIndex+((float)i / Installations.Length))*100f/taskSetNames.Count;\r
\r
if (inst.GetRegisteredHashCount() > 0) {\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.INFO, "検証: "+inst.ToString(), percent);\r
+ RaiseTaskSetEvent(TaskEventType.INFO, "検証: "+inst.ToString(), percent);\r
\r
if (inst.IsInstallablePackage() && inst.VerifyHashValues() == false) {\r
invalidInstallers.Add(inst);\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.WARNING, "検証: "+inst.ToString() + " 非整合", percent);\r
+ RaiseTaskSetEvent(TaskEventType.WARNING, "検証: "+inst.ToString() + " 非整合", percent);\r
} else {\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.INFO, "検証: "+inst.ToString() + " OK", percent);\r
+ RaiseTaskSetEvent(TaskEventType.INFO, "検証: "+inst.ToString() + " OK", percent);\r
}\r
}\r
i++;\r
private void runLocalUpdate()\r
{\r
// インストールトリストの更新\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.STARTED_TASKSET, TaskSetNames[currentTaskSetIndex]);\r
+ RaiseTaskSetEvent(TaskEventType.STARTED_SUBTASK, taskSetNames[currentTaskSetIndex]);\r
pkgListMan.DetectInstalledPkgs();\r
pkgListMan.SaveInstalledPackageList();\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.COMPLETED_TASKSET, TaskSetNames[currentTaskSetIndex]);\r
+ RaiseTaskSetEvent(TaskEventType.COMPLETED_SUBTASK, taskSetNames[currentTaskSetIndex]);\r
currentTaskSetIndex++;\r
\r
// システムにインストールされているリストの更新\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.STARTED_TASKSET, TaskSetNames[currentTaskSetIndex]);\r
+ RaiseTaskSetEvent(TaskEventType.STARTED_SUBTASK, taskSetNames[currentTaskSetIndex]);\r
pkgListMan.DetectSystemInstalledPkgs();\r
pkgListMan.SaveSystemInstalledPackageList();\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.COMPLETED_TASKSET, TaskSetNames[currentTaskSetIndex]);\r
+ RaiseTaskSetEvent(TaskEventType.COMPLETED_SUBTASK, taskSetNames[currentTaskSetIndex]);\r
currentTaskSetIndex++;\r
}\r
\r