private void GenerateFileJournal(AcquisitionParameter parameters) { if (parameters == null) { throw new ArgumentNullException("parameters"); } if (!Directory.Exists(this.JournalAbsoluteSavePath)) { return; } var now = DateTimePrecise.Now; var fileJournal = new FileJournal(); fileJournal.JournalHeader.CreationDateTime = now; fileJournal.JournalHeader.CreationSource = this.AgentUniversalName; fileJournal.JournalHeader.Id = parameters.SequenceId; fileJournal.JournalHeader.Sequenceur = parameters.SequenceId; fileJournal.JournalHeader.Root = Path.Combine(this.JournalRootPath, parameters.SequenceId); var filename = string.IsNullOrWhiteSpace(this.Configuration.Agent.Journalisation.CharacterizationFileName) ? this.AgentUniversalName : string.Format("{0}.{1}", this.Configuration.Agent.Journalisation.CharacterizationFileName, this.AgentUniversalName); var xmlCompleteFileName = Path.Combine(this.JournalAbsoluteSavePath, parameters.SequenceId + "." + filename + this.FileJournalFileExtension); int rootLength = 1 + Path.Combine(this.JournalRootPath, parameters.SequenceId).Length; using (var recorder = new JournalBufferedRecorder(xmlCompleteFileName, fileJournal, forceFlush: true)) { try { foreach (var file in SafeFileEnumerator.EnumerateFiles(this.JournalAbsoluteSavePath, "*.*", SearchOption.AllDirectories).Where(file => !Path.GetExtension(file).Equals(".fjx", StringComparison.InvariantCultureIgnoreCase))) { fileJournal.Add(new FileJournalEntry { FileName = Path.GetFileName(file), RelativePath = file.Substring(rootLength), DateTime = now }); } foreach (var journalEntry in _fileJournalEntries) { fileJournal.Add(journalEntry); } } finally { fileJournal.Close(); } } }
protected virtual Task OnAfterStateTransition(AcquisitionStep step, AcquisitionParameter parameters, AcquisitionActionResult result) { Log.Debug().Message("After transition to AcquisitionStep '{0}'.", step).WithAgent(this.Id).Write(); return(Task.FromResult(0)); }