コード例 #1
0
        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();
                }
            }
        }
コード例 #2
0
 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));
 }