public static new VkAudioAttachment FromJson(JToken json) { if (json == null) throw new ArgumentException("Json can not be null."); var result = new VkAudioAttachment(); result.Id = json["id"].Value<long>(); result.OwnerId = json["owner_id"].Value<long>(); result.Artist = json["artist"].Value<string>(); result.Title = json["title"].Value<string>(); result.Duration = TimeSpan.FromSeconds(json["duration"].Value<int>()); if (json["url"] != null) result.Url = json["url"].Value<string>(); return result; }
public static List <VkAttachment> FromJson(JToken json) { var result = new List <VkAttachment>(); foreach (var a in json) { switch (a["type"].Value <string>()) { case "audio": result.Add(VkAudioAttachment.FromJson(a["audio"])); break; case "photo": result.Add(VkPhotoAttachment.FromJson(a["photo"])); break; case "sticker": result.Add(VkStickerAttachment.FromJson(a["sticker"])); break; case "gift": result.Add(VkGiftAttachment.FromJson(a["gift"])); break; case "link": result.Add(VkLinkAttachment.FromJson(a["link"])); break; case "doc": result.Add(VkDocumentAttachment.FromJson(a["doc"])); break; case "video": result.Add(VkVideoAttachment.FromJson(a["video"])); break; case "wall": result.Add(VkWallPostAttachment.FromJson(a["wall"])); break; } } return(result); }
public static List <VkAttachment> FromJson(JToken json, string apiVersion = null) { var result = new List <VkAttachment>(); foreach (var a in json) { switch (a["type"].Value <string>()) { case "audio": result.Add(VkAudioAttachment.FromJson(a["audio"])); break; case "photo": result.Add(VkPhotoAttachment.FromJson(a["photo"])); break; } } return(result); }
public new static VkAudioAttachment FromJson(JToken json) { if (json == null) { throw new ArgumentException("Json can not be null."); } var result = new VkAudioAttachment(); result.Id = json["id"].Value <long>(); result.OwnerId = json["owner_id"].Value <long>(); result.Artist = json["artist"].Value <string>(); result.Title = json["title"].Value <string>(); result.Duration = TimeSpan.FromSeconds(json["duration"].Value <int>()); if (json["url"] != null) { result.Url = json["url"].Value <string>(); } return(result); }
private async Task<List<VkAudioAttachment>> GetAudioList(IProgress<int> progress, CancellationToken token) { if (Tracks == null) return null; var result = new List<VkAudioAttachment>(); int requestsCount = 0; foreach (var audio in Tracks) { if (token.IsCancellationRequested) return null; if (audio.Source == null) { VkAudio vkAudio = null; try { vkAudio = await DataService.GetAudioByArtistAndTitle(audio.Artist, audio.Title); } catch (Exception ex) { LoggingService.Log(ex); } if (vkAudio != null) { var audioAttachment = new VkAudioAttachment(); audioAttachment.Id = long.Parse(vkAudio.Id); audioAttachment.OwnerId = vkAudio.OwnerId; result.Add(audioAttachment); } else { LoggingService.Log("Failed to find audio " + audio.Artist + " - " + audio.Title); } requestsCount++; if (requestsCount >= 2) //не больше 2-х запросов в секунду { requestsCount = 0; await Task.Delay(1000); } } else { var audioAttachment = new VkAudioAttachment(); audioAttachment.Id = long.Parse(audio.Id); audioAttachment.OwnerId = audio.OwnerId; result.Add(audioAttachment); } if (token.IsCancellationRequested) return null; progress.Report(1); } return result; }