using NaGet.Packages.Install;\r
using NaGet.Packages;\r
using NaGet.Net;\r
+using NaGet.Tasks;\r
\r
namespace NaGet.SubCommands\r
{\r
get {\r
if (downloader == null) {\r
downloader = new Downloader();\r
+ downloader.DownloadEventRaised += delegate(object sender, DownloadEventArgs e) {\r
+ if (e.Type == DownloadEventType.DOWNLOADING && e.ProgressPercent > 0) {\r
+ RaiseTaskSetEvent(NaGetTaskSetEventType.PING, string.Empty, GetProgressPercent(NaGetTaskSetEventType.PING, e.ProgressPercent));\r
+ }\r
+ };\r
}\r
return downloader;\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
return;\r
}\r
}\r
- currentTaskSetIndex ++;\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.COMPLETED_TASKSET, TaskSetNames[currentTaskSetIndex-1]);\r
- }\r
+ \r
+ // もしハッシュが不適合なソフトがあるならばダウンロード処理からやり直す\r
+ } while (invalidInstallers == null || invalidInstallers.Count > 0);\r
+ RaiseTaskSetEvent(NaGetTaskSetEventType.COMPLETED_TASKSET, TaskSetNames[currentTaskSetIndex]);\r
+ currentTaskSetIndex ++;\r
}\r
\r
foreach (Installation inst in Installations) {\r
done = true;\r
return;\r
}\r
- currentTaskSetIndex ++;\r
- \r
RaiseTaskSetEvent(NaGetTaskSetEventType.COMPLETED_TASKSET, installTaskMsg);\r
+ currentTaskSetIndex ++;\r
\r
if (cancelCalled) {\r
RaiseTaskSetEvent(NaGetTaskSetEventType.CANCELED, "パッケージのインストール処理がキャンセルされました");\r
return;\r
}\r
}\r
- pkgListMan.SaveSystemInstalledLogList(); // ログのコミット\r
\r
runLocalUpdate();\r
\r
if (! inst.Downloaded) {\r
try {\r
inst.Download(Downloader);\r
- } catch (NaGetTaskCanceledException) {\r
+ } catch (TaskCanceledException) {\r
RaiseTaskSetEvent(NaGetTaskSetEventType.CANCELED, "インストーラーのダウンロード処理がキャンセルされました");\r
done = true;\r
return;\r
return;\r
}\r
}\r
- currentTaskSetIndex ++;\r
\r
- if (inst.Downloaded) { // 正常終了\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.COMPLETED_TASKSET, TaskSetNames[currentTaskSetIndex-1]);\r
- } else { // インストールが完了せずに終わった=失敗=エラー\r
+ if (! inst.Downloaded) { // ダウンロードが完了せずに終わった=失敗=エラー\r
RaiseTaskSetEvent(NaGetTaskSetEventType.ERROR, string.Format("{0}のインストーラーファイルを正常にダウンロードできませんでした", inst.ToString()));\r
done = true;\r
return;\r
}\r
+ RaiseTaskSetEvent(NaGetTaskSetEventType.COMPLETED_TASKSET, TaskSetNames[currentTaskSetIndex]);\r
+ currentTaskSetIndex ++;\r
\r
RaiseTaskSetEvent(NaGetTaskSetEventType.STARTED_TASKSET, TaskSetNames[currentTaskSetIndex]);\r
if (! NaGet.Env.EnableScanInstallerFile) {\r
return;\r
}\r
}\r
+ RaiseTaskSetEvent(NaGetTaskSetEventType.COMPLETED_TASKSET, TaskSetNames[currentTaskSetIndex]);\r
currentTaskSetIndex ++;\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.COMPLETED_TASKSET, TaskSetNames[currentTaskSetIndex-1]);\r
\r
if (cancelCalled) {\r
RaiseTaskSetEvent(NaGetTaskSetEventType.CANCELED, "パッケージのインストール処理がキャンセルされました");\r
RaiseTaskSetEvent(NaGetTaskSetEventType.STARTED_TASKSET, TaskSetNames[currentTaskSetIndex]);\r
pkgListMan.DetectInstalledPkgs();\r
pkgListMan.SaveInstalledPackageList();\r
+ RaiseTaskSetEvent(NaGetTaskSetEventType.COMPLETED_TASKSET, TaskSetNames[currentTaskSetIndex]);\r
currentTaskSetIndex++;\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.COMPLETED_TASKSET, TaskSetNames[currentTaskSetIndex-1]);\r
\r
// システムにインストールされているリストの更新\r
RaiseTaskSetEvent(NaGetTaskSetEventType.STARTED_TASKSET, TaskSetNames[currentTaskSetIndex]);\r
pkgListMan.DetectSystemInstalledPkgs();\r
pkgListMan.SaveSystemInstalledPackageList();\r
+ RaiseTaskSetEvent(NaGetTaskSetEventType.COMPLETED_TASKSET, TaskSetNames[currentTaskSetIndex]);\r
currentTaskSetIndex++;\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.COMPLETED_TASKSET, TaskSetNames[currentTaskSetIndex-1]);\r
}\r
\r
public override bool Done {\r