コード例 #1
0
        /// <summary>ブックデータを格納したzipファイルを作成します。</summary>
        /// <param name="zipSettingId">作成するzipファイル情報の登録済みIDを表す文字列。</param>
        /// <param name="relayStation">Modelの情報をVMに中継するためのCreatorRelayStation。</param>
        /// <returns>非同期処理の実行結果を表すTask。</returns>
        public async Task CreateBookZipAsync(string zipSettingId, CreatorRelayStation relayStation)
        {
            this.relay = relayStation;
            relayStation.AddLog($"************ zipファイル作成開始! ************");

            // zip作成対象の情報を取得
            var settings = new ZipFileSettingsRepository().GetById(zipSettingId);

            if (settings == null)
            {
                return;
            }

//#if DEBUG
//			await Task.Run(() => Directory.Delete(settings.ImageFilesExtractedFolder.Value, true));
//#endif

            // 展開エラーの有無チェック
            var extractor = new ArchiveFileExtractor(relayStation);

            if (!await Task.Run(() => extractor.HasExtractError(settings)))
            {
                return;
            }

            // 展開先ワークフォルダ作成
            await this.createWorkFolderAsync(settings);

            // アーカイブを展開
            await extractor.ExtractAsync(settings)
            .ContinueWith(async t => await this.createDistributesRules(settings))
            .ContinueWith(async t => await this.distributesSourceItems(settings));
        }
コード例 #2
0
        public async Task CreateZipBookAsync(string zipSettingId, CreatorRelayStation relayStation)
        {
            // zip作成対象の情報を取得
            var settings = new ImageSourceAgent().GetZipFileSettings(zipSettingId);

            if (settings == null)
            {
                return;
            }

            // アーカイブファイルを展開
            var extractor = new ArchiveFileExtractor();

            if (!await extractor.StartExtractAsync(settings, relayStation))
            {
                return;
            }

            Debug.WriteLine("StartExtractAsync 呼出し後");

            foreach (var imgSrc in settings.ImageSources)
            {
                if (imgSrc.IsNotExists)
                {
                    continue;
                }

                await extractor.ExtractImageSourceAsync(imgSrc);
            }

            Debug.WriteLine("CheckSourceFiles 呼び出し前");

            //// ソースファイルをチェック
            //new SourceFileCollector().CheckSourceFiles(settings);
        }