public virtual string GetSearchPattern(FileNameSegments segments)
        {
            var allSegments = new[] { segments.Key ?? "*", segments.Signature ?? "*" }.Concat(segments.AdditionalSegments.Select(x => x.Value));

            return(String.Join(".", allSegments.Select(x => x ?? "*")));
        }
        public virtual string GetFilename(FileNameSegments segments)
        {
            var allSegments = new[] { segments.Key ?? NullStringReplacer, segments.Signature ?? NullStringReplacer }.Concat(segments.AdditionalSegments.Select(x => x.Value));

            return(String.Join(".", allSegments.Select(x => x ?? NullStringReplacer)));
        }