2using System.Collections.Generic;
4using System.Threading.Tasks;
77 public Task<object>
DecodeAsync(
string ContentType,
byte[] Data, Encoding Encoding, KeyValuePair<string, string>[] Fields, Uri BaseUri)
80 return Task.FromResult<
object>(
CSV.
Parse(s));
92 if (
string.Compare(FileExtension,
"csv",
true) == 0)
115 FileExtension =
"csv";
119 FileExtension =
string.Empty;
134 (Object is
string[][] || Object is
IMatrix))
154 public Task<KeyValuePair<byte[], string>>
EncodeAsync(
object Object, Encoding Encoding, params
string[] AcceptedContentTypes)
158 if (Object is
string[][] Records)
163 throw new ArgumentException(
"Unable to encode as CSV.", nameof(Object));
165 if (Encoding is
null)
166 Encoding = Encoding.UTF8;
168 return Task.FromResult(
new KeyValuePair<
byte[],
string>(Encoding.GetBytes(Csv),
ContentType));
Helps with common CSV-related tasks. (CSV=Comma Separated Values)
static string[][] Parse(string Csv)
Parses a CSV string.
static string Encode(string[][] Records)
Encodes records as a Comma-separated values string.
Helps with parsing of commong data types.
static string GetString(byte[] Data, Encoding DefaultEncoding)
Gets a string from its binary representation, taking any Byte Order Mark (BOM) into account.
Static class managing encoding and decoding of internet content.
static bool IsAccepted(string ContentType, params string[] AcceptedContentTypes)
Checks if a given content type is acceptable.
Task< KeyValuePair< byte[], string > > EncodeAsync(object Object, Encoding Encoding, params string[] AcceptedContentTypes)
Encodes an object.
bool Encodes(object Object, out Grade Grade, params string[] AcceptedContentTypes)
If the encoder encodes a given object.
bool TryGetContentType(string FileExtension, out string ContentType)
Tries to get the content type of an item, given its file extension.
bool Decodes(string ContentType, out Grade Grade)
If the decoder decodes an object with a given content type.
Task< object > DecodeAsync(string ContentType, byte[] Data, Encoding Encoding, KeyValuePair< string, string >[] Fields, Uri BaseUri)
Decodes an object.
string[] FileExtensions
Supported file extensions.
string[] ContentTypes
Supported content types.
static readonly string[] CsvContentTypes
CSV content types.
bool TryGetFileExtension(string ContentType, out string FileExtension)
Tries to get the file extension of an item, given its Content-Type.
static readonly string[] CsvFileExtensions
CSV content types.
const string ContentType
Content-Type for CSV files.
Basic interface for Internet Content decoders. A class implementing this interface and having a defau...
Basic interface for Internet Content encoders. A class implementing this interface and having a defau...
Basic interface for matrices.