@@ -52,6 +52,24 @@ public static string UrlSanitize(this string text)
5252 return ( ! string . IsNullOrEmpty ( result ) , result ) ;
5353 }
5454
55+ public static IEnumerable < TEnum > GetFlags < TEnum > ( this TEnum value , TEnum ignore = default )
56+ where TEnum : struct , Enum
57+ {
58+ Enum enumValue = ( Enum ) ( object ) value ;
59+ TEnum [ ] allValues = Enum . GetValues < TEnum > ( ) ;
60+
61+ return allValues . Where ( flag =>
62+ {
63+ if ( EqualityComparer < TEnum > . Default . Equals ( flag , ignore ) )
64+ return false ;
65+
66+ if ( Convert . ToInt64 ( flag ) == 0 )
67+ return false ;
68+
69+ return enumValue . HasFlag ( ( Enum ) ( object ) flag ) ;
70+ } ) ;
71+ }
72+
5573 private static Dictionary < Language , string > VOELanguageKeyCollection = new ( )
5674 {
5775 { Language . GerDub , "1" } ,
@@ -86,6 +104,28 @@ public static string UrlSanitize(this string text)
86104 return default ;
87105 }
88106
107+ public static string ToLanguageText ( this Language language )
108+ {
109+ if ( language == Language . None )
110+ return "None" ;
111+
112+ Dictionary < Language , string > languageTextCollection = new ( )
113+ {
114+ { Language . GerDub , "GerDub" } ,
115+ { Language . GerSub , "GerSub" } ,
116+ { Language . EngDub , "EngDub" } ,
117+ { Language . EngSub , "EngSub" } ,
118+ { Language . EngDubGerSub , "EngDub + GerSub" }
119+ } ;
120+
121+ if ( languageTextCollection . TryGetValue ( language , out string ? languageText ) )
122+ return languageText ;
123+
124+ return string . Join ( ", " , language
125+ . GetFlags ( Language . None )
126+ . Select ( flag => languageTextCollection . TryGetValue ( flag , out string ? text ) ? text : flag . ToString ( ) ) ) ;
127+ }
128+
89129 public static string ? GetClaim ( this HttpContext httpContext , CustomClaimType claimType )
90130 {
91131 return httpContext . User . Claims
@@ -98,7 +138,6 @@ public static string UrlSanitize(this string text)
98138 {
99139 { "AniWorld" , StreamingPortal . AniWorld } ,
100140 { "STO" , StreamingPortal . STO } ,
101- { "MegaKino" , StreamingPortal . MegaKino } ,
102141 } ;
103142
104143 public static StreamingPortal ToStreamingPortal ( this string streamingPortal )
0 commit comments