Esempio n. 1
0
        protected override ChannelSearchInfo AnalysisData(XmlReader reader)
        {
            ChannelSearchOutlineInfo outLineInfo = AnalysisCount(reader);
            var channel = new ChannelSearchInfo()
            {
                Navs        = new List <ChannelSearchNavInfo>(8),
                Lists       = new List <ChannelSearchListInfo>(),
                OutlineInfo = outLineInfo
            };

            if (reader.IsStartElement("nav"))
            {
                reader.Read();
                while (reader.IsStartElement("type"))
                {
                    var nav = new ChannelSearchNavInfo();
                    nav.Id    = int.Parse(reader.GetAttribute("id"));
                    nav.Name  = reader.GetAttribute("name");
                    nav.Count = int.Parse(reader.GetAttribute("count"));
                    channel.Navs.Add(nav);
                    reader.ReadToNextSibling("type");
                }
            }
            while (reader.Read())
            {
                if (reader.NodeType == XmlNodeType.Element &&
                    reader.Name == "v")
                {
                    var list = new ChannelSearchListInfo();
                    if (reader.ReadToFollowing("vid"))
                    {
                        list.Vid = reader.ReadElementContentAsInt();
                    }
                    if (reader.ReadToFollowing("title"))
                    {
                        list.Text = reader.ReadElementContentAsString();
                    }
                    if (reader.ReadToFollowing("catalog"))
                    {
                        list.CatalogTags = reader.ReadElementContentAsString();
                    }
                    if (reader.ReadToFollowing("imgurl"))
                    {
                        list.ImgSource = reader.ReadElementContentAsString();
                    }
                    if (string.IsNullOrEmpty(list.ImgSource) &&
                        reader.ReadToFollowing("sloturl"))
                    {
                        list.ImgSource = reader.ReadElementContentAsString();
                    }
                    if (reader.ReadToFollowing("duration"))
                    {
                        list.Duration = reader.ReadElementContentAsDouble();
                    }

                    channel.Lists.Add(list);
                }
            }
            return(channel);
        }
Esempio n. 2
0
        /// <summary>
        /// 分析集合大小
        /// </summary>
        /// <param name="reader"></param>
        /// <returns></returns>
        protected ChannelSearchOutlineInfo AnalysisCount(System.Xml.XmlReader reader)
        {
            ChannelSearchOutlineInfo channelSearchOutLineInfo = new ChannelSearchOutlineInfo();

            if (reader.ReadToFollowing("count"))
            {
                channelSearchOutLineInfo.Count = reader.ReadElementContentAsInt();
                if (reader.IsStartElement("page_count"))
                {
                    channelSearchOutLineInfo.PageCount = reader.ReadElementContentAsInt();
                    if (reader.IsStartElement("countInPage"))
                    {
                        channelSearchOutLineInfo.CountInPage = reader.ReadElementContentAsInt();
                        if (reader.IsStartElement("page"))
                        {
                            channelSearchOutLineInfo.CurrentPage = reader.ReadElementContentAsInt();
                            ///*
                            // * 总个数是否小于每页的个数,小于的话第一页返回总个数,其余页返回0
                            // * 不小于判断是哪页,其余页返回每页个数,最后一页算一下还剩下多少页
                            // */
                            //return count > countInPage ?
                            //    (pageIndex > pageCount ? 0 : (pageIndex == pageCount) ? count - (pageIndex - 1) * countInPage : countInPage) :
                            //    (pageIndex > 1 ? 0 : count);
                        }
                    }
                }
            }
            return(channelSearchOutLineInfo);
        }