private string InitializeEventJournal(string savePath, InitializeRecordParameter parameters) { if (string.IsNullOrEmpty(savePath)) { throw new ArgumentNullException("savePath"); } if (parameters == null) { throw new ArgumentNullException("parameters"); } string xmlCompleteFileName = string.Empty; this.EventJournal = CreateEventJournal(parameters); if (this.EventJournal != null) { Directory.CreateDirectory(savePath); this.EventJournal.EventJournalHeader.CreationSource = this.AgentUniversalName; this.EventJournal.EventJournalHeader.Id = parameters.SequenceId; this.EventJournal.EventJournalHeader.Sequenceur = parameters.SequenceId; this.EventJournal.EventJournalHeader.AcquisitionOffset = this.Configuration.Agent.Journalisation.AcquisitionOffSet; string filename = string.IsNullOrWhiteSpace(this.Configuration.Agent.Journalisation.CharacterizationFileName) ? this.AgentUniversalName : string.Format("{0}.{1}", this.Configuration.Agent.Journalisation.CharacterizationFileName, this.AgentUniversalName); xmlCompleteFileName = Path.Combine(savePath, parameters.SequenceId + "." + filename + this.EventJournalFileExtension); _eventJournalRecorder = new JournalBufferedRecorder(xmlCompleteFileName, this.EventJournal, true); } return(xmlCompleteFileName); }
private void CloseEventJournal() { if (_eventJournalRecorder != null) { _eventJournalRecorder.Close(); } _eventJournalRecorder = null; this.EventJournal = null; }
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(); } } }