1+ using System . Collections . Generic ;
2+ using System . Linq ;
3+
4+ namespace HttpMultipartParser
5+ {
6+ /// <summary>
7+ /// Class containing various extension methods.
8+ /// </summary>
9+ public static class Extensions
10+ {
11+ /// <summary>
12+ /// Returns true if the parameter has any values. False otherwise.
13+ /// </summary>
14+ /// <param name="parser">The multipart form parser.</param>
15+ /// <param name="name">The name of the parameter.</param>
16+ /// <returns>True if the parameter exists. False otherwise.</returns>
17+ public static bool HasParameter ( this IMultipartFormDataParser parser , string name )
18+ {
19+ return parser . Parameters . Any ( p => p . Name == name ) ;
20+ }
21+
22+ /// <summary>
23+ /// Returns the value of a parameter or null if it doesn't exist.
24+ ///
25+ /// You should only use this method if you're sure the parameter has only one value.
26+ ///
27+ /// If you need to support multiple values use GetParameterValues.
28+ /// </summary>
29+ /// <param name="parser">The multipart form parser.</param>
30+ /// <param name="name">The name of the parameter.</param>
31+ /// <returns>The value of the parameter.</returns>
32+ public static string GetParameterValue ( this IMultipartFormDataParser parser , string name )
33+ {
34+ return parser . GetParameterValues ( name ) . FirstOrDefault ( ) ;
35+ }
36+
37+ /// <summary>
38+ /// Returns the values of a parameter or an empty enumerable if the parameter doesn't exist.
39+ /// </summary>
40+ /// <param name="parser">The multipart form parser.</param>
41+ /// <param name="name">The name of the parameter.</param>
42+ /// <returns>The values of the parameter.</returns>
43+ public static IEnumerable < string > GetParameterValues ( this IMultipartFormDataParser parser , string name )
44+ {
45+ return parser . Parameters
46+ . Where ( p => p . Name == name )
47+ . Select ( p => p . Data ) ;
48+ }
49+ }
50+ }
0 commit comments