Example #1
0
        public void Flush(IEnumerable <SignatureInfo> signatureInfos)
        {
            if (_createdFiles.Count == 0)
            {
                throw new ArgumentException("Must have at least one signature info", "signatureInfos");
            }

            CloseCreatedStreams();

            _storage.Batch(
                accessor =>
            {
                accessor.ClearSignatures(_fileName);
                foreach (var item in _createdFiles)
                {
                    var item1 = item;
                    var level = SignatureInfo.Parse(item.Key).Level;
                    accessor.AddSignature(_fileName, level,
                                          stream =>
                    {
                        using (var cachedSigContent = File.OpenRead(item1.Key))
                        {
                            cachedSigContent.CopyTo(stream);
                        }
                    });
                }
            });
            _createdFiles = new Dictionary <string, FileStream>();
        }
Example #2
0
        public SignatureInfo GetByName(string sigName)
        {
            SignatureInfo result = null;

            _storage.Batch(
                accessor =>
            {
                var signatureLevel = GetSignatureLevel(sigName, accessor);
                if (signatureLevel == null)
                {
                    throw new FileNotFoundException(sigName + " not found in the repo");
                }
                result        = SignatureInfo.Parse(sigName);
                result.Length = accessor.GetSignatureSize(signatureLevel.Id, signatureLevel.Level);
            });
            return(result);
        }
Example #3
0
 public IEnumerable <SignatureInfo> GetByFileName()
 {
     return(from item in GetSigFileNamesByFileName()
            select SignatureInfo.Parse(item));
 }
Example #4
0
 private static SignatureInfo ExtractFileNameAndLevel(string sigName)
 {
     return(SignatureInfo.Parse(sigName));
 }