public override bool Equals(MediaItem other) { YoutubeItem otherItem = (YoutubeItem)other; return(ResourceId.Equals(otherItem.ResourceId)); }
async Task showItem(YoutubeItem item) { YoutubeItemMetadata metaData = item.Metadata as YoutubeItemMetadata; if (metaData == null) { return; } Title = metaData.Title; Rating = metaData.Rating == null ? null : metaData.Rating / 5; Author = metaData.Author; CreationDate = metaData.CreationDate; IsReadOnly = item.IsReadOnly; Tags.Clear(); foreach (Tag tag in metaData.Tags) { Tags.Add(tag); } if (!metaData.Description.EndsWith("...")) { Description = metaData.Description; } else if (item is YoutubeVideoItem) { Video info = await requestVideoInfo((item as YoutubeVideoItem).VideoId); if (info != null) { Description = metaData.Description = info.Snippet.Description; } else { Description = metaData.Description; } } else { Description = metaData.Description; } if (metaData.ViewCount != null) { DynamicProperties.Add(new Tuple<string, string>("Views", metaData.ViewCount.Value.ToString("#,##0", new CultureInfo("en-US")))); } if (metaData.MimeType != null) { DynamicProperties.Add(new Tuple<string, string>("Mime Type", metaData.MimeType)); } if (metaData.Width != null && metaData.Height != null) { DynamicProperties.Add(new Tuple<string, string>("Resolution", metaData.Width + " x " + metaData.Height)); } if (metaData.FramesPerSecond != null) { DynamicProperties.Add(new Tuple<string, string>("Frames Per Second", metaData.FramesPerSecond.Value.ToString())); } if (metaData.DurationSeconds != null) { DynamicProperties.Add(new Tuple<string, string>("Duration", MiscUtils.formatTimeSeconds(metaData.DurationSeconds.Value))); } }