string CreateScrobbleQueryParams (IEnumerable<Track> batch) { var queryParameters = new QueryParameters { Tuple.Create ("method", "track.scrobble"), Tuple.Create ("api_key", LastFMAppCredentials.APIKey), Tuple.Create ("sk", SessionKey), }; int trackNumber = 0; foreach (var track in batch) { queryParameters.AddIndexed ("artist", track.TrackArtist, trackNumber); queryParameters.AddIndexed ("track", track.Name, trackNumber); queryParameters.AddIndexed ("timestamp", track.Timestamp.ToString (), trackNumber); queryParameters.AddIndexed ("album", track.Album, trackNumber); queryParameters.AddIndexed ("trackNumber", track.Number.ToString (), trackNumber); queryParameters.AddIndexed ("duration", track.Duration.ToString (), trackNumber); if (!string.IsNullOrEmpty (track.AlbumArtist)) queryParameters.AddIndexed ("albumArtist", track.AlbumArtist, trackNumber); if (!string.IsNullOrEmpty (track.MusicBrainzId)) queryParameters.AddIndexed ("mbid", track.MusicBrainzId, trackNumber); trackNumber ++; } return queryParameters.GenerateQueryString (LastFMAppCredentials.SharedSecret); }