/// <summary> /// Factory method that parses a given Stream with the appropriate playlist type, based on the supplied content type. /// </summary> /// <param name="contentType">Internet content type representing the playlist type of the Stream.</param> /// <param name="stream">Stream representing the playlist data.</param> /// <returns>Successfully parsed playlist.</returns> public static IPlaylist Parse(string contentType, Stream stream) { if (string.IsNullOrEmpty(contentType)) { throw new ArgumentException("contentType cannot be null or empty."); } if (stream == null) { throw new ArgumentNullException("stream"); } IPlaylistParser result; switch (contentType) { case M3uParser.M3uContentType: result = new M3uParser(); break; case PlsParser.PlsContentType: result = new PlsParser(); break; default: throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, "Invalid content type: {0}", contentType)); } return result.Parse(stream); }
/// <summary> /// Factory method that parses a given Stream with the appropriate playlist type, based on the supplied content type. /// </summary> /// <param name="contentType">Internet content type representing the playlist type of the Stream.</param> /// <param name="stream">Stream representing the playlist data.</param> /// <returns>Successfully parsed playlist.</returns> public static IPlaylist Parse(string contentType, Stream stream) { if (string.IsNullOrEmpty(contentType)) { throw new ArgumentException("contentType cannot be null or empty."); } if (stream == null) { throw new ArgumentNullException("stream"); } IPlaylistParser result; switch (contentType) { case M3uParser.M3uContentType: result = new M3uParser(); break; case PlsParser.PlsContentType: result = new PlsParser(); break; default: throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, "Invalid content type: {0}", contentType)); } return(result.Parse(stream)); }