/// <summary> /// 判断本任务以及所有子任务是否完毕 /// 如果完毕则通知父页 /// </summary> /// <param name="snifferManager"></param> public void PageDone(SnifferManager snifferManager) { //snifferManager?.OnPageDoneEventHandler(this); //if (this.Config.Plug != null) // this.Config.Plug.OnPageDoneEventHandler(this); //所有子页已完成,则标注已完成状态 if (SubPages.All(x => x.Done && x.SnifferState == SnifferState.Complate)) { SnifferState = SnifferState.Complate; } if (ParentPage == null) { if (SubPages.All(x => x.Done && x.SnifferState == SnifferState.Complate)) { //触发顶级页采集完毕事件 snifferManager?.OnRootPageDoneEventHandler(this, snifferManager.Context); if (this.Config.Plug != null) { this.Config.Plug.OnRootPageDoneEventHandler(this, snifferManager.Context); } } } else { //当前页以及当前页的所有子页完毕 if (SnifferState == SnifferState.Complate) { if (Config.PageType == PageType.DetailPage) { //当前详细页以及详细页内容采集完毕 snifferManager?.OnDetailPageDoneEventHandler(this as DetailPage, snifferManager.Context); if (this.Config.Plug != null) { this.Config.Plug.OnDetailPageDoneEventHandler(this as DetailPage, snifferManager.Context); } } else { //列表页以及所有子页采集完毕 snifferManager?.OnListPageDoneEventHandler(this as ListPage, snifferManager.Context); if (this.Config.Plug != null) { this.Config.Plug.OnListPageDoneEventHandler(this as ListPage, snifferManager.Context); } } //触发父页 PageDone ParentPage.PageDone(snifferManager); } } }