OSDN Git Service

na-get-lib,旧方式のタスク(NaGetTaskSet)系のクラスを削除。
[applistation/AppliStation.git] / na-get-lib / NaGet.SubCommands / NaGetUpdate.cs
diff --git a/na-get-lib/NaGet.SubCommands/NaGetUpdate.cs b/na-get-lib/NaGet.SubCommands/NaGetUpdate.cs
deleted file mode 100644 (file)
index 3a6644a..0000000
+++ /dev/null
@@ -1,190 +0,0 @@
-using System;\r
-using System.IO;\r
-using NaGet.Packages;\r
-using NaGet.Packages.Install;\r
-using NaGet.Net;\r
-using NaGet.SubCommands;\r
-using NaGet.Tasks;\r
-\r
-namespace NaGet.SubCommands\r
-{\r
-       public class NaGetUpdate : NaGetTaskSet\r
-       {\r
-               private RepositoriesList repoList;\r
-               \r
-               private PackageListsManager pkgListMan;\r
-               \r
-               private bool downloadPackageLists = false;\r
-               \r
-               private bool packageListsDownloaded = true;\r
-               \r
-               \r
-               /// <summary>\r
-               /// ダウンロードに使うダウンローダオブジェクト\r
-               /// </summary>\r
-               public Downloader Downloader {\r
-                       get {\r
-                               if (downloader == null) {\r
-                                       downloader = new Downloader();\r
-                                       downloader.DownloadEventRaised += delegate(object sender, DownloadEventArgs e) {\r
-                                               if (e.DownloadTaskType == DownloadEventType.DOWNLOADING && e.ProgressPercent > 0) {\r
-                                                       RaiseTaskSetEvent(TaskEventType.PING, string.Empty, GetProgressPercent(TaskEventType.PING, e.ProgressPercent));\r
-                                               }\r
-                                       };\r
-                               }\r
-                               return downloader;\r
-                       }\r
-               }\r
-               \r
-               private Downloader downloader;\r
-               \r
-               private int currentTaskSetIndex = -1;\r
-               \r
-               private bool done = false;\r
-               \r
-               public override int CurrentTaskSetIndex {\r
-                       get { return currentTaskSetIndex; }\r
-               }\r
-               \r
-               public override bool Cancelable {\r
-                       get { return ! packageListsDownloaded; }\r
-               }\r
-               \r
-               public NaGetUpdate(PackageListsManager pkgListMan)\r
-                       : this(pkgListMan, true)\r
-               {\r
-               }\r
-               \r
-               public NaGetUpdate(PackageListsManager pkgMan, bool downloadPackageListsFlag)\r
-               {\r
-                       pkgListMan = pkgMan;\r
-                       downloadPackageLists = downloadPackageListsFlag;\r
-                       \r
-                       taskSetNames = new System.Collections.Generic.List<string>();\r
-                       if (downloadPackageLists) {\r
-                               // repos.list.xmlがあるとき、そこからよみとる。\r
-                               repoList = NaGet.Utils.GetDeserializedObject<RepositoriesList>(NaGet.Env.RepositoriesListFile);\r
-                               \r
-                               foreach (RepositoryInfo repo in repoList.EnabledRepositories) {\r
-                                       taskSetNames.Add(string.Format("リスト取得: {0}", repo.Url.Href));\r
-                               }\r
-                               taskSetNames.Add(string.Format("リスト更新: {0}", NaGet.Env.PackageListFile));\r
-                       }\r
-                       taskSetNames.Add(string.Format("リスト更新: {0}", NaGet.Env.ArchiveInstalledPackageListFile));\r
-                       taskSetNames.Add(string.Format("リスト更新: {0}", NaGet.Env.SystemInstalledPackageListFile));\r
-               }\r
-\r
-               public override void Run()\r
-               {\r
-                       currentTaskSetIndex ++;\r
-                       RaiseTaskSetEvent(TaskEventType.STARTED, "リスト更新処理開始");\r
-                       \r
-                       try {\r
-                               // リストのダウンロード\r
-                               if (downloadPackageLists) {\r
-                                       packageListsDownloaded = false;\r
-                                       try {\r
-                                               runDownloadPackageLists();\r
-                                       } catch (TaskCanceledException) {\r
-                                               RaiseTaskSetEvent(TaskEventType.WARNING, "リストのダウンロード処理がキャンセルされました");\r
-                                               pkgListMan.LoadPackageLists();\r
-                                       } catch (System.Net.WebException e) {\r
-                                               RaiseTaskSetEvent(TaskEventType.WARNING, e.Message);\r
-                                               if (System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable()) {\r
-                                                       RaiseTaskSetEvent(TaskEventType.WARNING, "ネットワークに接続されていません。");\r
-                                               } else {\r
-                                                       RaiseTaskSetEvent(TaskEventType.WARNING, "ネットワークに接続できませんでした。ネットワークが切断されているか、ファイアウォールによって遮断された可能性があります。");\r
-                                               }\r
-                                               pkgListMan.LoadPackageLists();\r
-                                       } finally {\r
-                                               int numOfEnabledRepos = NaGet.Utils.IEnumerable2Array(repoList.EnabledRepositories).Length;\r
-                                               currentTaskSetIndex = numOfEnabledRepos + 1;\r
-                                       }\r
-                                       packageListsDownloaded = true;\r
-                               }\r
-                               \r
-                               runLocalUpdate();\r
-                       } finally {\r
-                               done = true;\r
-                       }\r
-                       \r
-                       RaiseTaskSetEvent(TaskEventType.COMPLETED, "終了", 100);\r
-               }\r
-               \r
-               private void runDownloadPackageLists()\r
-               {\r
-                       PackageList<Package> avaiablePackageList = new PackageList<Package>();\r
-                       foreach(RepositoryInfo repo in repoList.EnabledRepositories) {\r
-                               RaiseTaskSetEvent(TaskEventType.STARTED_SUBTASK, taskSetNames[currentTaskSetIndex]);\r
-                               \r
-                               if (Uri.IsWellFormedUriString(repo.Url.Href, UriKind.Absolute)) {\r
-                                       string tmpfileName = Path.GetTempFileName();\r
-                                       try {\r
-                                               Downloader.Download(repo.Url.Href, tmpfileName);\r
-                                               if (repo.Type == RepositoryType.APPLISTATION_NATIVE_XML_1_0) {\r
-                                                       try {\r
-                                                               PackageList<Package> pkgList = NaGet.Utils.GetDeserializedObject<PackageList<Package>>(tmpfileName);\r
-                                                               pkgList.FixPackageListName(); // PackageListNameとの紐付けを行う\r
-                                                               \r
-                                                               // RepositoryReferenceの名前を読み込む // TODO RepositoryReferenceの名前を読み込む処理はここでいいのか?\r
-                                                               repo.Name = (string.IsNullOrEmpty(pkgList.Name))? repo.Name : pkgList.Name;\r
-                                                               \r
-                                                               avaiablePackageList.AddPackages(pkgList);\r
-                                                       } catch (InvalidOperationException) {\r
-                                                               RaiseTaskSetEvent(TaskEventType.ERROR, string.Format("レポジトリ'{0}'はAppliStation Native XML softlist形式ではありません。", repo.Name ?? repo.Url.Href));\r
-                                                       }\r
-                                               } else {\r
-                                                       RaiseTaskSetEvent(TaskEventType.WARNING, string.Format("レポジトリ'{0}'の設定が不正です。", repo.Name ?? repo.Url.Href));\r
-                                               }\r
-                                       } finally {\r
-                                               if (File.Exists(tmpfileName)) {\r
-                                                       File.Delete(tmpfileName);\r
-                                               }\r
-                                       }\r
-                               } else {\r
-                                       RaiseTaskSetEvent(TaskEventType.WARNING, string.Format("レポジトリ'{0}'のURLが不正なため、ソフトリストは取得できませんでした。", repo.Name ?? repo.Url.Href));\r
-                               }\r
-                               \r
-                               RaiseTaskSetEvent(TaskEventType.COMPLETED_SUBTASK, taskSetNames[currentTaskSetIndex]);\r
-                               currentTaskSetIndex ++;\r
-                       }\r
-                       \r
-                       // TODO 暫定的にかならず常にrepositoryリストに書き込む。\r
-                       if ( true ) {\r
-                               NaGet.Utils.PutSerializeObject(NaGet.Env.RepositoriesListFile, repoList);\r
-                       }\r
-                       \r
-                       RaiseTaskSetEvent(TaskEventType.STARTED_SUBTASK, taskSetNames[currentTaskSetIndex]);\r
-                       pkgListMan.availablePkgList = avaiablePackageList; // Mediatorのリストを更新\r
-                       pkgListMan.SaveAvailablePackageList();\r
-                       RaiseTaskSetEvent(TaskEventType.COMPLETED_SUBTASK, taskSetNames[currentTaskSetIndex]);\r
-                       currentTaskSetIndex ++;\r
-               }\r
-               \r
-               private void runLocalUpdate()\r
-               {\r
-                       // インストールトリストの更新\r
-                       RaiseTaskSetEvent(TaskEventType.STARTED_SUBTASK, taskSetNames[currentTaskSetIndex]);\r
-                       pkgListMan.DetectInstalledPkgs();\r
-                       pkgListMan.SaveInstalledPackageList();\r
-                       RaiseTaskSetEvent(TaskEventType.COMPLETED_SUBTASK, TaskSetNames[currentTaskSetIndex]);\r
-                       currentTaskSetIndex++;\r
-               \r
-                       // システムにインストールされているリストの更新\r
-                       RaiseTaskSetEvent(TaskEventType.STARTED_SUBTASK, TaskSetNames[currentTaskSetIndex]);\r
-                       pkgListMan.DetectSystemInstalledPkgs();\r
-                       pkgListMan.SaveSystemInstalledPackageList();\r
-                       RaiseTaskSetEvent(TaskEventType.COMPLETED_SUBTASK, TaskSetNames[currentTaskSetIndex]);\r
-                       currentTaskSetIndex++;\r
-               }\r
-               \r
-               public override bool Cancel()\r
-               {\r
-                       return Downloader.Cancel();\r
-               }\r
-\r
-               public override bool Done {\r
-                       get { return done; }\r
-               }\r
-       }\r
-}\r