get {\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
+ }\r
+ };\r
}\r
return downloader;\r
}\r
return;\r
}\r
}\r
+ RaiseTaskSetEvent(NaGetTaskSetEventType.COMPLETED_TASKSET, TaskSetNames[currentTaskSetIndex]);\r
currentTaskSetIndex ++;\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.COMPLETED_TASKSET, TaskSetNames[currentTaskSetIndex-1]);\r
}\r
}\r
\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
- 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
/// \8dì\8bÆ\82ð\8fI\97¹\r
/// </summary>\r
COMPLETED_TASKSET,\r
+ /// <summary>\r
+ /// \93®\8dì\90i\92»\81E\92Ê\92m\82Ì\82Ý\r
+ /// </summary>\r
+ PING,\r
}\r
\r
#endregion\r
get;\r
}\r
\r
+ /// <summary>\r
+ /// \8c»\8dÝ\82Ì\90i\92»\82ð\96ß\82·\81B\r
+ /// </summary>\r
+ /// <param name="type">\8dì\8bÆ\82Ì\8fó\91Ô</param>\r
+ /// <param name="subTaskProgress">\83T\83u\83^\83X\83N\82Ì\90i\92»</param>\r
+ /// <returns>\8c»\8dÝ\82Ì\90i\92»</returns>\r
+ protected virtual float GetProgressPercent(NaGetTaskSetEventType type, float subTaskProgress)\r
+ {\r
+ if (CurrentTaskSetIndex >= 0) {\r
+ if (subTaskProgress >= 0) {\r
+ return (CurrentTaskSetIndex * 100 + subTaskProgress) / TaskSetNames.Length;\r
+ }\r
+ switch (type) {\r
+ case NaGetTaskSetEventType.STARTED:\r
+ return 0;\r
+ case NaGetTaskSetEventType.COMPLETED:\r
+ return 100;\r
+ case NaGetTaskSetEventType.COMPLETED_TASKSET:\r
+ return ((CurrentTaskSetIndex+1) * 100) / TaskSetNames.Length;\r
+ default:\r
+ return (CurrentTaskSetIndex * 100) / TaskSetNames.Length;\r
+ }\r
+ }\r
+ \r
+ return -1;\r
+ }\r
+ \r
protected virtual void RaiseTaskSetEvent(NaGetTaskSetEventType type, string message)\r
{\r
- float percent = (CurrentTaskSetIndex >= 0)? CurrentTaskSetIndex * 100 / TaskSetNames.Length : -1;\r
- RaiseTaskSetEvent(type, message, percent);\r
+ RaiseTaskSetEvent(type, message, GetProgressPercent(type, -1));\r
}\r
\r
protected virtual void RaiseTaskSetEvent(NaGetTaskSetEventType type, string message, float percent)\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
// \83V\83X\83e\83\80\82É\83C\83\93\83X\83g\81[\83\8b\82³\82ê\82Ä\82¢\82é\83\8a\83X\83g\82Ì\8dX\90V\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
get {\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
+ }\r
+ };\r
}\r
return downloader;\r
}\r
RaiseTaskSetEvent(NaGetTaskSetEventType.WARNING, string.Format("レポジトリ'{0}'のURLが不正なため、ソフトリストは取得できませんでした。", repo.Name ?? repo.Url.Href));\r
}\r
\r
+ RaiseTaskSetEvent(NaGetTaskSetEventType.COMPLETED_TASKSET, TaskSetNames[currentTaskSetIndex]);\r
currentTaskSetIndex ++;\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.COMPLETED_TASKSET, TaskSetNames[currentTaskSetIndex-1]);\r
}\r
\r
// TODO 暫定的にかならず常にrepositoryリストに書き込む。\r
RaiseTaskSetEvent(NaGetTaskSetEventType.STARTED_TASKSET, TaskSetNames[currentTaskSetIndex]);\r
pkgListMan.availablePkgList = avaiablePackageList; // Mediatorのリストを更新\r
pkgListMan.SaveAvailablePackageList();\r
+ RaiseTaskSetEvent(NaGetTaskSetEventType.COMPLETED_TASKSET, TaskSetNames[currentTaskSetIndex]);\r
currentTaskSetIndex ++;\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.COMPLETED_TASKSET, TaskSetNames[currentTaskSetIndex-1]);\r
}\r
\r
private void runLocalUpdate()\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 Cancel()\r