private static IEnumerable<File> GetFiles(Dictionary<string, object> torrentData)
{
var files = (JsonArray) torrentData[Torrent.Fields.Files];
var fileProgress = (JsonArray) torrentData[Torrent.Fields.FileProgress];
var filePriority = (JsonArray) torrentData[Torrent.Fields.FilePriorities];
var finalFiles = new List<File> (files.Count);
foreach (JsonObject file in files) {
int index = (int)((long) file[File.Fields.Index]);
long priority = (long) filePriority[index];
double progress = Convert.ToDouble (fileProgress[index]);
finalFiles.Add (new File {
Index = index,
Offset = (long) file[File.Fields.Offset],
Path = (string) file[File.Fields.Path],
Priority = priority,
Progress = progress,
Size = (long) file[File.Fields.Size],
});
}
return finalFiles;
}