public override void ConfigureTaskImplementation(AsyncTaskSequence sequence) { _importLibraryDirectory = Path.GetDirectoryName(ImportLibraryFilename); Initialize(ImportLibraryFilename); sequence.Add(new Task(() => CreateIDConversionTable())); sequence.Add(new Task(() => ImportAuthors(LibraryManager.Value))); sequence.Add(new Task(() => ImportTags(LibraryManager.Value))); sequence.AddRange(GenerateTasksToImportBooks(LibraryManager.Value)); sequence.Add(new Task(() => DropIDConversionTable())); sequence.Add(new Task(() => EndProcess())); }
public override void ConfigureTaskImplementation(AsyncTaskSequence sequence) { sequence.Add(new Task(() => s_logger.Info($"Begin to Calculate Book ByteSize."))); var books = Range.FindBook(LibraryManager.Value); sequence.Add(new Task(() => s_logger.Info($"Found : {books.Count()}"))); foreach (var book in books) { sequence.AddRange(GenerateTasksToCalcBook(LibraryManager.Value, book)); } sequence.Add(new Task(() => s_logger.Info($"Finished to Calculate Book ByteSize."))); }
public override void ConfigureTaskImplementation(AsyncTaskSequence sequence) { List <Importer> importers = new List <Importer>(); DiscriminateDroppedEntries(ObjectPaths, importers, LibraryManager.Value); var workingDirectory = Configuration.ApplicationConfiguration.WorkingDirectory; var now = DateTime.Now; var copyTo = workingDirectory + "\\" + MasterDirectory + "\\" + now.Year + "\\" + now.Month.ToString("00") + "\\" + now.Day.ToString("00"); //保存先ディレクトリ準備 if (!Directory.Exists(copyTo)) { Directory.CreateDirectory(copyTo); s_logger.Debug($"Create directory:{copyTo}"); } List <Importer> willNotImport = new List <Importer>(); //構造把握+全体数計上 foreach (var task in importers) { task.Estimate(); if (task.Count == 0) { willNotImport.Add(task); } } //メタデータ分析 foreach (var task in importers) { if (task is ImportIllust) { var importer = task as ImportIllust; importer.Title = DateTime.Now.ToString("yyyyMMddHHmmss"); } else if (task is ImportBook) { var importer = task as ImportBook; string sourceDirName = ((File.GetAttributes(importer.Path) & FileAttributes.Directory) == FileAttributes.Directory) ? Path.GetFileName(importer.Path) : Path.GetDirectoryName(importer.Path); var dirNameParser = DirectoryNameParserManager.Get(sourceDirName); dirNameParser.Parse(sourceDirName); if (dirNameParser.HasTags) { importer.TagNames = dirNameParser.Tags; } if (dirNameParser.HasAuthor) { importer.AuthorName = dirNameParser.Author; } importer.Title = dirNameParser.Title; } } //画像0件のインポート単位はインポートしない foreach (var task in willNotImport) { importers.Remove(task); s_logger.Warn($"{task.Path} will not be imported."); } sequence.Add(new System.Threading.Tasks.Task(() => s_logger.Info($"Began to import."))); for (int i = 0; i < importers.Count(); ++i) { var task = importers.ElementAt(i); Guid entryNameSeedGuid = Guid.NewGuid(); var entryName = entryNameSeedGuid.ToString("N"); var t = task.GenerateTasks(LibraryManager.Value, copyTo, entryName, null, (importer, bookvm) => { bookvm.CurrentProcessProgress.Value.Count.Value = importer.Processed; bookvm.CurrentProcessProgress.Value.TotalCount.Value = importer.Count; }); sequence.AddRange(t); } sequence.Add(new System.Threading.Tasks.Task(() => s_logger.Info($"Completed to import."))); }