public void WriteQueryString(StreamWriter writer, bool append = true, int index = -1)
{
if (Duration <= 0)
{
throw new Exception("Missing submit parameter: duration");
}
if (string.IsNullOrEmpty(Fingerprint))
{
throw new Exception("Missing submit parameter: fingerprint");
}
var batch = string.Empty;
if (index >= 0)
{
batch = "." + index;
}
if (append)
{
writer.Write("&");
}
writer.Write("duration{0}={1}", batch, Duration);
writer.Write("&fingerprint{0}={1}", batch, Fingerprint);
if (Bitrate > 0)
{
writer.Write("&bitrate{0}={1}", batch, Bitrate);
}
if (!string.IsNullOrWhiteSpace(FileFormat))
{
writer.Write("&fileformat{0}={1}", batch, FileFormat);
}
if (!string.IsNullOrWhiteSpace(MBID))
{
writer.Write("&mbid{0}={1}", batch, MBID);
}
if (!string.IsNullOrWhiteSpace(Title))
{
writer.Write("&track{0}={1}", batch, Title);
}
if (!string.IsNullOrWhiteSpace(Artist))
{
writer.Write("&artist{0}={1}", batch, Uri.EscapeUriString(Artist));
}
if (!string.IsNullOrWhiteSpace(Album))
{
writer.Write("&album{0}={1}", batch, Uri.EscapeUriString(Album));
}
if (!string.IsNullOrWhiteSpace(AlbumArtist))
{
writer.Write("&albumartist{0}={1}", batch, Uri.EscapeUriString(AlbumArtist));
}
if (Year > 0)
{
writer.Write("&year{0}={1}", batch, Year);
}
if (TrackNumber > 0)
{
writer.Write("&trackno{0}={1}", batch, TrackNumber);
}
if (DiscNumber > 0)
{
writer.Write("&discno{0}={1}", batch, DiscNumber);
}
}
}