public void GetVideoDetails(string guid, VideoDataManager.DataQueryCompleteDelegate onQueryComplete)
        {
            VideoData videoData = this.VideoDatas.ContainsKey(guid) ? this.VideoDatas[guid] : null;

            if (videoData != null && videoData.HasDetails)
            {
                onQueryComplete(guid);
                return;
            }
            Service.Get <Engine>().StartCoroutine(this.Query(this.urlBuilder.VideoDetails(guid), new VideoDataManager.QueryCompleteDelegate(this.ParseDetails), onQueryComplete, guid));
        }
        private void ParseDetails(string json, object callback, object data)
        {
            VideoDataManager.DataQueryCompleteDelegate dataQueryCompleteDelegate = (VideoDataManager.DataQueryCompleteDelegate)callback;
            string    videoGuid = (string)data;
            VideoData videoData = VideoDataParser.ParseDetails(videoGuid, json);

            if (videoData != null)
            {
                this.Merge(videoData);
                dataQueryCompleteDelegate(videoData.Guid);
                return;
            }
            dataQueryCompleteDelegate(null);
        }