From 968c252a2ed0254fe2ffe699167ba2acb7d3844a Mon Sep 17 00:00:00 2001 From: Neal Leverenz Date: Wed, 5 Oct 2022 09:22:01 -0400 Subject: [PATCH 1/2] Add support to get a list of extensions --- src/MimeTypesMap/MimeTypesMap.cs | 10 ++++++++++ src/MimeTypesMap/MimeTypesMap.tt | 10 ++++++++++ test/MimeTypesMapTests/SimpleTests.cs | 16 +++++++++++++++- 3 files changed, 35 insertions(+), 1 deletion(-) diff --git a/src/MimeTypesMap/MimeTypesMap.cs b/src/MimeTypesMap/MimeTypesMap.cs index 7c6c77f..bd739db 100644 --- a/src/MimeTypesMap/MimeTypesMap.cs +++ b/src/MimeTypesMap/MimeTypesMap.cs @@ -1008,6 +1008,16 @@ public static string GetExtension(string mime) return _defaultExtension; } + public static IEnumerable GetExtensions(string mime) + { + var ext = _mimeTypeMap.Value.Where(x => x.Value.Contains(mime)).Select(x => x.Key); + if (ext != null) + { + return ext; + } + return new List { "???" }; + } + public static string GetMimeType(string fileName) { string ext = fileName; diff --git a/src/MimeTypesMap/MimeTypesMap.tt b/src/MimeTypesMap/MimeTypesMap.tt index b08d2ac..306924c 100644 --- a/src/MimeTypesMap/MimeTypesMap.tt +++ b/src/MimeTypesMap/MimeTypesMap.tt @@ -38,6 +38,16 @@ namespace HeyRed.Mime return _defaultExtension; } + public static IEnumerable GetExtensions(string mime) + { + var ext = _mimeTypeMap.Value.Where(x => x.Value.Contains(mime)).Select(x => x.Key); + if (ext != null) + { + return ext; + } + return new List { "???" }; + } + public static string GetMimeType(string fileName) { string ext = fileName; diff --git a/test/MimeTypesMapTests/SimpleTests.cs b/test/MimeTypesMapTests/SimpleTests.cs index b78e116..558aecd 100644 --- a/test/MimeTypesMapTests/SimpleTests.cs +++ b/test/MimeTypesMapTests/SimpleTests.cs @@ -1,4 +1,5 @@ -using HeyRed.Mime; +using System.Collections.Generic; +using HeyRed.Mime; using Xunit; namespace MimeTypesMapTests @@ -32,6 +33,19 @@ public void GetExtension() var ext = MimeTypesMap.GetExtension("image/jpeg"); Assert.Equal("jpeg", ext); } + + [Fact] + public void GetExtensions() + { + var expected = new List + { + "ai", + "eps", + "ps" + }; + var exts = MimeTypesMap.GetExtensions("application/postscript"); + Assert.Equal(expected, exts); + } [Fact] public void AddOrUpdate() From 17e50d3dc65a399ced7cf914587e3d304bc9fccf Mon Sep 17 00:00:00 2001 From: Neal Leverenz Date: Fri, 7 Oct 2022 08:16:53 -0400 Subject: [PATCH 2/2] Update "???" to use _defaultExtension --- src/MimeTypesMap/MimeTypesMap.cs | 2 +- src/MimeTypesMap/MimeTypesMap.tt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/MimeTypesMap/MimeTypesMap.cs b/src/MimeTypesMap/MimeTypesMap.cs index bd739db..2bc8b3d 100644 --- a/src/MimeTypesMap/MimeTypesMap.cs +++ b/src/MimeTypesMap/MimeTypesMap.cs @@ -1015,7 +1015,7 @@ public static IEnumerable GetExtensions(string mime) { return ext; } - return new List { "???" }; + return new List { _defaultExtension }; } public static string GetMimeType(string fileName) diff --git a/src/MimeTypesMap/MimeTypesMap.tt b/src/MimeTypesMap/MimeTypesMap.tt index 306924c..7c5724c 100644 --- a/src/MimeTypesMap/MimeTypesMap.tt +++ b/src/MimeTypesMap/MimeTypesMap.tt @@ -45,7 +45,7 @@ namespace HeyRed.Mime { return ext; } - return new List { "???" }; + return new List { _defaultExtension }; } public static string GetMimeType(string fileName)