コード例 #1
0
        public int CompareTo(object obj)
        {
            Headline headline = obj as Headline;

            if (obj == null)
            {
                throw new InvalidCastException("Not a valid Headline object.");
            }
            bool bAscending = (Headline.SortingOrder == SortOrder.Ascending);

            switch (Headline.SortingFilter)
            {
            case SortFilter.Title:
                return((bAscending) ? Title.CompareTo(headline.Title) : headline.Title.CompareTo(Title));

            case SortFilter.DatePublished:
                return((bAscending) ? DatePublished.CompareTo(headline.DatePublished) : headline.DatePublished.CompareTo(DatePublished));

            case SortFilter.DateReceived:
                return((bAscending) ? DateReceived.CompareTo(headline.DateReceived) : headline.DateReceived.CompareTo(DateReceived));

            case SortFilter.Author:
                return((bAscending) ? Author.CompareTo(headline.Author) : headline.Author.CompareTo(Author));
            }
            return(0);
        }
コード例 #2
0
        public override void Run()
        {
            HeadlineCollection headlines = new HeadlineCollection();

            try
            {
                //DateTime now = DateTime.Now;
                DateTime now = DateTime.FromFileTime(0);

                string strFileName = Names.FeedsFolder + m_feedNode.FileName;
                if (File.Exists(strFileName))
                {
                    XmlDocument xmlDoc = new XmlDocument();
                    xmlDoc.Load(strFileName);

                    FeedManager = new FeedManager(xmlDoc.NameTable);
                    FeedManager.TransferNamespaces(xmlDoc);

                    XmlNodeList xmlNodes = xmlDoc.SelectNodes("/rss/channel//item");

                    foreach (XmlNode xmlNode in xmlNodes)
                    {
                        string    title       = FeedManager.GetNodeContent(xmlNode, "title");
                        DateTime  dtPublished = FeedManager.GetNodeDate(xmlNode, "pubDate", now);
                        DateTime  dtReceived  = FeedManager.GetNodeDate(xmlNode, "comshak:rcvDate", now);
                        string    author      = FeedManager.GetNodeContent(xmlNode, "author");
                        string    desc        = FeedManager.GetNodeContent(xmlNode, "description", NCEncoding.String, NCType.Text);
                        string    link        = FeedManager.GetNodeContent(xmlNode, "link");
                        string    categ       = FeedManager.GetNodeContent(xmlNode, "category");
                        Enclosure enc         = FeedManager.GetEnclosure(xmlNode, "enclosure");

                        Headline headline = new Headline(title, dtPublished, dtReceived, author, desc, categ, enc);
                        headline.Link = link;
                        headlines.Add(headline);
                    }
                }
            }
            catch (FileNotFoundException ex)
            {
                Utils.DbgOutExc("ReadChannelThread::Run()", ex);
            }
            catch (XmlException xmlEx)
            {
                Utils.DbgOutExc("ReadChannelThread::Run()", xmlEx);
            }
            //catch (Exception ex)
            //{
            //	Utils.DbgOutExc("ReadChannelThread::Run()", ex);
            //}
            finally
            {
                m_form.Invoke(new OnEndCallback(OnEnd), new object[] { headlines });
            }
        }
コード例 #3
0
 public void Add(Headline headline)
 {
     m_arrList.Add(headline);
 }