public void AnalyzeSongs(object state)
{
EchoNestApi api = CreateApiInstance();
api.CatalogUpdateCompleted += new EventHandler<EchoNestApiEventArgs>(
AnalyzeSongs_CatalogUpdateCompleted);
List<CatalogAction<Song>> list = SongsToAnalyze
.Skip(UploadSkip * uploadTake)
.Take(uploadTake)
.Select<AnalyzedSong, CatalogAction<Song>>(
(s) =>
{
logger.Trace("Preparing to upload song {0}", s);
return new CatalogAction<Song>
{
Item = (Song)s
};
})
.ToList();
api.CatalogUpdateAsync(new Catalog
{
Id = CatalogId,
SongActions = list,
}, null,
// Tell the callback that this was the last batch
(list.Count < uploadTake));
logger.Debug("Uploading {0} songs for analysis", list.Count);
}