private void importTask(ArchiveTask archTask) { models.Task task = new models.Task(archTask); task.save(); List <Entity> temps = new List <Entity>(); foreach (ArchiveTemplate archTemp in archTask.Templates) { TaskTemplate temp = new TaskTemplate(archTemp); temp.TaskID = task.ID; temps.Add(temp); } DatabaseManager.SharedManager.insertMultipleEntities(temps); foreach (ArchiveTemplate archTemp in archTask.Templates) { archTemp.ID = temps[archTask.Templates.IndexOf(archTemp)].ID; importSelectionsAndParameters(archTemp); } List <Entity> solvers = new List <Entity>(); foreach (ArchiveTaskSolver archSolv in archTask.Solvers) { TaskSolver solv = new TaskSolver(archSolv); solv.TaskID = task.ID; solvers.Add(solv); } DatabaseManager.SharedManager.insertMultipleEntities(solvers); foreach (ArchiveTaskSolver archSolv in archTask.Solvers) { archSolv.ID = solvers[archTask.Solvers.IndexOf(archSolv)].ID; } }
ArchiveTask[] CreateArgsForCompressionAndMetaForImage(out Collection <MetaRecord> metarecords) { metarecords = new Collection <MetaRecord>(); Collection <CompressionItem> compressionItems = _task.FilesFoldersList; var parametersSet = new ArchiveTask[_task.FilesFoldersList.Count]; int syncIndex = 0; int itemIndex = 0; foreach (CompressionItem item in compressionItems) { // Compression item string tempFileName; do { tempFileName = Directories.TempFolder + @"\butil_tmp_" + syncIndex.ToString(CultureInfo.InvariantCulture) + ".7z"; syncIndex += 1; }while(!_temporaryFiles.TryRegisterNewName(tempFileName)); parametersSet[itemIndex] = _task.EnableEncryption ? new ArchiveTask(_options.ProcessPriority, tempFileName, item, _task.SecretPassword) : new ArchiveTask(_options.ProcessPriority, tempFileName, item); // Metainformation var record = new MetaRecord(item.IsFolder, item.Target); record.LinkedFile = tempFileName; metarecords.Add(record); itemIndex++; } return(parametersSet); }
public Task Handle(ArchiveTask message, IMessageHandlerContext context) { log.Info($"newTask, ZipPath = {message.ZipPath}"); _taskManager.ArchiveSite(message); MarkAsComplete(); return(Task.CompletedTask); }
public async Task SagaTest() { //Arrange SagaTask saga = new SagaTask(_mockTaskManager) { Data = new PlaceSagaTask() }; var context = new TestableMessageHandlerContext(); var placeTask = new PlaceTask() { TaskId = 1 }; var zipTask = new ArchiveTask() { TaskId = placeTask.TaskId, ZipPath = "" }; _mockTaskManager.Stub(t => t.DownloadSite(placeTask.TaskId)).Return(zipTask); //Act await saga.Handle(placeTask, context) .ConfigureAwait(false); var stage1 = (ArchiveTask)context.SentMessages[0].Message; await saga.Handle(zipTask, context) .ConfigureAwait(false); var stage2 = (ArchiveTask)context.SentMessages[0].Message; //Assert _mockTaskManager.AssertWasCalled(t => t.DownloadSite(stage1.TaskId)); _mockTaskManager.AssertWasCalled(t => t.ArchiveSite(stage1)); Assert.AreEqual(placeTask.TaskId, stage2.TaskId); }
private void DumpFileToArchive(string[] files, Action <IEnumerable <FileInfo>, string> archive, Func <string, bool, DirectoryInfoCache, PerfCounter, Dumper> createDumper, DirectoryInfoCache workingDir, string outputExtension, string sourceExtension) { if (EnableAutoLogging) { // use parent of pdf/epub folder. _counter.SetOutputFolder(workingDir.Item.Parent.FullName); } using (var uwAll = _counter.UsingWatch("All")) { foreach (string file in files) { bool isJapanese = IsJapanese(file); Dumper gen = createDumper(file, isJapanese, workingDir, _counter); gen.EnableAutoLogging = EnableAutoLogging; if (DialogResult.OK != new ProgressDialog(gen.LongTask, _counter).ShowDialog(this)) { // MessageBox.Show("generate html cancelled"); // tmp fall through. // return; } } using (var uwArchive = _counter.UsingWatch("Archive")) { ArchiveTask archiveTask = new ArchiveTask(workingDir, archive, outputExtension); archiveTask.SourceExtension = sourceExtension; if (DialogResult.OK != new ProgressDialog(archiveTask, _counter).ShowDialog(this)) { MessageBox.Show("generate epub cancelled"); return; } } } if (EnableAutoLogging) { _counter.DumpToLog(); } }
private void DumpFileToArchive(string[] files, Action<IEnumerable<FileInfo>, string> archive, Func<string, bool, DirectoryInfoCache, PerfCounter, Dumper> createDumper, DirectoryInfoCache workingDir, string outputExtension, string sourceExtension) { if (EnableAutoLogging) { // use parent of pdf/epub folder. _counter.SetOutputFolder(workingDir.Item.Parent.FullName); } using (var uwAll = _counter.UsingWatch("All")) { foreach (string file in files) { bool isJapanese = IsJapanese(file); Dumper gen = createDumper(file, isJapanese, workingDir, _counter); gen.EnableAutoLogging = EnableAutoLogging; if (DialogResult.OK != new ProgressDialog(gen.LongTask, _counter).ShowDialog(this)) { // MessageBox.Show("generate html cancelled"); // tmp fall through. // return; } } using (var uwArchive = _counter.UsingWatch("Archive")) { ArchiveTask archiveTask = new ArchiveTask(workingDir, archive, outputExtension); archiveTask.SourceExtension = sourceExtension; if (DialogResult.OK != new ProgressDialog(archiveTask, _counter).ShowDialog(this)) { MessageBox.Show("generate epub cancelled"); return; } } } if (EnableAutoLogging) _counter.DumpToLog(); }
public void ArchiveSite(ArchiveTask task) { _zipProvider.Zip(task.ZipPath, task.TaskId); }
public Archive generateArchiveSystem() { scenarioRelations.Clear(); selectionRelations.Clear(); taskSolverRelations.Clear(); Archive archive = new Archive(); List <Entity> tasks = models.Task.all(typeof(models.Task)); foreach (models.Task task in tasks) { ArchiveTask archTask = new ArchiveTask(task); List <TaskTemplate> templates = TaskTemplate.templatesOfTaskId(task.ID); foreach (TaskTemplate template in templates) { ArchiveTemplate archTemp = new ArchiveTemplate(template); List <Selection> selections = Selection.selectionsOfTaskTemplateId(template.ID); foreach (Selection sel in selections) { ArchiveSelection archSel = new ArchiveSelection(sel); selectionRelations.Add(new RelationExport(sel.ID, archSel)); archTemp.Selections.Add(archSel); } List <Parameter> parameters = Parameter.parametersOfTaskTemplateId(template.ID); foreach (Parameter par in parameters) { ArchiveParameter archPar = new ArchiveParameter(par); archTemp.Parameters.Add(archPar); } archTask.Templates.Add(archTemp); } List <TaskSolver> solvers = TaskSolver.solversOfTaskId(task.ID); foreach (TaskSolver solver in solvers) { ArchiveTaskSolver archSol = new ArchiveTaskSolver(solver); taskSolverRelations.Add(new RelationExport(solver.ID, archSol)); archTask.Solvers.Add(archSol); } archive.Tasks.Add(archTask); } List <Entity> scenarios = LearningScenario.all(typeof(LearningScenario)); foreach (LearningScenario scenario in scenarios) { ArchiveScenario archScenario = new ArchiveScenario(scenario); scenarioRelations.Add(new RelationExport(scenario.ID, archScenario)); archive.Scenarios.Add(archScenario); } List <Entity> lSolvers = LearnedSolver.all(typeof(LearnedSolver)); foreach (LearnedSolver solver in lSolvers) { ArchiveLearnedSolver archSol = new ArchiveLearnedSolver(solver); List <LearningQuality> quailties = LearningQuality.qualitiesOfSolverId(solver.ID); foreach (LearningQuality quality in quailties) { ArchiveLearningQuality archQ = new ArchiveLearningQuality(quality); archSol.Qualities.Add(archQ); } var find = taskSolverRelations.Find(x => x.ID == solver.TaskSolverID); archSol.TaskSolver = (find != null) ? (ArchiveTaskSolver)find.model : null; find = selectionRelations.Find(x => x.ID == solver.SelectionID); archSol.Selection = (find != null) ? (ArchiveSelection)find.model : null; find = scenarioRelations.Find(x => x.ID == solver.LearningScenarioID); archSol.Scenario = (find != null) ? (ArchiveScenario)find.model : null; archive.LearnedSolvers.Add(archSol); } return(archive); }