当前位置: 首页>>代码示例>>C#>>正文


C# XPCollection.Count方法代码示例

本文整理汇总了C#中XPCollection.Count方法的典型用法代码示例。如果您正苦于以下问题:C# XPCollection.Count方法的具体用法?C# XPCollection.Count怎么用?C# XPCollection.Count使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在XPCollection的用法示例。


在下文中一共展示了XPCollection.Count方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: BeginWebDownload

        // 开始扫描页面
        private void BeginWebDownload()
        {
            // 如果正在扫描,就不扫描了。
            if (!CheckTask()) return;

            this.Cursor = Cursors.WaitCursor;   // 设置忙光标

            // 取得对应的Web
            int web_id = int.Parse(treeList1.FocusedNode[treeOid].ToString());
            XPCollection<Web> webs = new XPCollection<Web>(XpoDefault.Session,
                CriteriaOperator.Parse("Oid = ?", web_id));
            Debug.Assert(webs.Count() == 1);
            Web current_web = webs[0];

            // 取得对应的规则
            BaseRule br = current_web.Rule;

            // 如果规则没有取到,就提示尚未完成,不再继续
            if (br == null)
            {
                MessageBox.Show("该扫描规则还没有完成,暂不能使用!", "注意", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                //开始一个线程进行工作
                //m_web_thread = new Thread(new ParameterizedThreadStart(StartSingleScan)) { IsBackground = true };
                //m_web_thread.Start(m_rule);
                m_task = Task.Factory.StartNew(() => StartSingleScan(br));
            }

            this.Cursor = Cursors.Default;      // 光标恢复正常
        }
开发者ID:hmxiaoxiao,项目名称:Leo2,代码行数:33,代码来源:frmMain.cs

示例2: NewPageInExistPages

        /// 判断新取得的页面是否在新页面列表里存在
        /// <summary>
        /// 判断新取得的页面是否在新页面列表里存在
        /// </summary>
        /// <returns>存在,返回真,不存在,返回假</returns>
        private bool NewPageInExistPages(List<Page> list)
        {
            if (list.Count() <= 0)
                return false;

            List<string> filter = new List<string>();

            // 生成过滤条件
            foreach (Page page in list)
            {
                filter.Add(page.URL);
            }

            XPCollection<Page> pages = new XPCollection<Page>(XpoDefault.Session,
                new InOperator("URL", filter.ToArray()));
            if(pages.Count() > 0)
                return true;
            else
                return false;
        }
开发者ID:hmxiaoxiao,项目名称:Leo2,代码行数:25,代码来源:BaseRule.cs

示例3: SetPageHasRead

        ///// <summary>
        ///// 下载指定的联接
        ///// </summary>
        ///// <param name="web_oid"></param>
        ///// <returns></returns>
        //public List<Page> DownloadPageFromURL(int web_oid, bool update_all = false)
        //{
        //    var webs = from w in Session.DefaultSession.Query<Web>()
        //               where w.Oid == web_oid
        //               select w;
        //    foreach (Web web in webs)
        //    {
        //        ListHelper.PageList = new List<Page>();
        //        ListHelper.GetAndSavePagesOnList(web, web.URL, update_all);
        //        SetUnreadCount(web, ListHelper.PageList.Count);
        //        //PageHelper.GetAllContentWithSave();
        //        return ListHelper.PageList;
        //    }
        //    return new List<Page>();
        //}
        ///// <summary>
        ///// 设置当前结点未读的数量
        ///// </summary>
        ///// <param name="web"></param>
        ///// <param name="unread"></param>
        //private void SetUnreadCount(Web web, int unread)
        //{
        //    web.Unread += unread;
        //    web.Save();
        //}
        /// <summary>
        /// 设置ID的页面为已读
        /// </summary>
        /// <param name="oid"></param>
        public void SetPageHasRead(int oid)
        {
            // 先检查参数是否正确
            Session session = XpoDefault.Session;
            Page current_page = session.GetObjectByKey<Page>(oid);
            if(current_page == null || current_page.ParentWeb == null)
                return;

            // 同一时间只能一个线程保存数据
            System.Threading.Mutex m = new System.Threading.Mutex(false, "SaveDB");
            m.WaitOne();

            // 开始事务
            using (UnitOfWork uow = new UnitOfWork(XpoDefault.DataLayer))
            {

                // 设置页面已读
                current_page.Is_Read = true;
                current_page.Save();

                // 再更新web的未读数量
                XPCollection<Page> list = new XPCollection<Page>(XpoDefault.Session,
                    CriteriaOperator.Parse("Parent_ID = ? and Is_Read = ?", current_page.Parent_ID, false));
                Web web = session.GetObjectByKey<Web>(current_page.Parent_ID);
                web.Unread = list.Count();
                web.Save();

                uow.CommitChanges();
            }

            m.ReleaseMutex();       // 释放锁
        }
开发者ID:hmxiaoxiao,项目名称:Leo2,代码行数:66,代码来源:LeoController.cs

示例4: SaveScanResult

        // 保存所有扫描出来的页面到数据库里面
        protected void SaveScanResult(object sender, BaseRule.ScanCompleteEventArgs e)
        {
            // 同一时间只能一个线程保存数据
            System.Threading.Mutex m = new System.Threading.Mutex(false, "SaveDB");
            m.WaitOne();
            using (UnitOfWork uow = new UnitOfWork(XpoDefault.DataLayer))       // 开始事务
            {
                uow.BeginTransaction();
                //  对于每个取得的新页面,判断是否已经存在,如果不存在就保存
                foreach (Page page in e.pages)
                {
                    XPCollection<Page> pages = new XPCollection<Page>(uow,
                        CriteriaOperator.Parse("URL = ?", page.URL));
                    if (pages.Count() == 0)
                    {
                        Page newPage = new Page(uow) { Parent_ID = CurrentWeb.Oid, Title = page.Title, URL = page.URL };
                        newPage.Save();
                    }
                }
                uow.CommitChanges();
            }

            m.ReleaseMutex();
        }
开发者ID:hmxiaoxiao,项目名称:Leo2,代码行数:25,代码来源:BaseRule.cs


注:本文中的XPCollection.Count方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。