本文整理汇总了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; // 光标恢复正常
}
示例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;
}
示例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(); // 释放锁
}
示例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();
}