/// <summary>
        /// Add an instrument file, optionally including its file hash
        /// </summary>
        /// <param name="instrumentFileRelativePath"></param>
        /// <param name="fileSizeBytes"></param>
        /// <param name="hashValue"></param>
        /// <param name="hashType"></param>
        public void AddInstrumentFile(string instrumentFileRelativePath, long fileSizeBytes, string hashValue, HashUtilities.HashTypeConstants hashType)
        {
            if (InstrumentFiles.ContainsKey(instrumentFileRelativePath))
            {
                throw new DuplicateNameException("Duplicate key in AddInstrumentFile; Instrument file already defined: " +
                                                 instrumentFileRelativePath);
            }

            var instFileInfo = new InstrumentFileInfo
            {
                Length = fileSizeBytes
            };

            if (string.IsNullOrWhiteSpace(hashValue))
            {
                instFileInfo.Hash     = string.Empty;
                instFileInfo.HashType = HashUtilities.HashTypeConstants.Undefined;
            }
            else
            {
                instFileInfo.Hash     = hashValue;
                instFileInfo.HashType = hashType;
            }

            InstrumentFiles.Add(instrumentFileRelativePath, instFileInfo);
        }
 /// <summary>
 /// Clear all values
 /// </summary>
 public void Clear()
 {
     FileSystemCreationTime     = DateTime.MinValue;
     FileSystemModificationTime = DateTime.MinValue;
     DatasetID     = 0;
     DatasetName   = string.Empty;
     FileExtension = string.Empty;
     AcqTimeStart  = DateTime.MinValue;
     AcqTimeEnd    = DateTime.MinValue;
     ScanCount     = 0;
     FileSizeBytes = 0;
     DeviceList.Clear();
     InstrumentFiles.Clear();
     OverallQualityScore = 0;
 }