示例#1
0
        private static void Sequence_AppListCheck()
        {
            /* アプリケーションリストをダウンロードするまで待つ */
            if (!downloader_.IsComplete)
            {
                return;
            }

            var app_infos = SystemInfo.ParseFromXml(downloader_.ResultString);

            /* バージョンリストが解析できなかった場合は終了 */
            if (app_infos == null)
            {
                seq_ = Sequence.Complete;
                return;
            }

            /* 現在より新しいバージョンのアプリ情報を降順で取得 */
            var app_infos_new =
                from info in app_infos
                where info.Name == ConfigManager.Fixed.ApplicationName.Value
                from ver in info.Versions
                where ver.IsNewVersion(Program.Version)
                orderby ver.ToVersionCode() descending
                select ver.DownloadUrl;

            /* 現在より新しいバージョンがなければ終了 */
            if (app_infos_new.Count() == 0)
            {
                seq_ = Sequence.Complete;
                return;
            }

            /* ワークスペースを初期化 */
            Shell.mkdir(WorkspacePath);

            /* ファイルダウンロード開始 */
            downloader_ = new WebDownloader();
            downloader_.DownloadFile(app_infos_new, DownloadSavePath);

            /* シーケンス更新 */
            seq_++;
        }