private static bool CheckExistence(DbSession session, Guid spiderId, EGrabType grabType, string issueName) { var query = IORMProvider.GetDbQueryBuilder(session).SelectBuilder; query.ComponentSelect.Add(new ComponentValueOfSelect("1")); query.ComponentWhere.Add(new ComponentValueOfWhere(TGrabRequestProperties.SpiderId, spiderId, LocateType.Equal)); query.ComponentWhere.Add(new ComponentValueOfWhere(TGrabRequestProperties.GrabType, grabType, LocateType.Equal)); query.ComponentWhere.Add(new ComponentValueOfWhere(TGrabRequestProperties.IssueName, issueName, LocateType.Equal)); var result = IORMProvider.GetQueryOperator(session).SelectAsInt <TGrabRequest>(session, query); return(result != null); }
public CreateGrabRequestResult Create(DbSession session, Guid spiderId, EGrabType grabType, string issueName, string spiderName) { if (CheckExistence(session, spiderId, grabType, issueName)) { return(CreateGrabRequestResult.Existed); } RequestId = Guid.NewGuid(); SpiderId = spiderId; GrabType = grabType; IssueName = issueName; SpiderName = spiderName; ProcessStatus = EProcessStatus.Ready; Message = ""; return(this.DbInsert(session) ? CreateGrabRequestResult.Success : CreateGrabRequestResult.DbOperationFailed); }
public static IGrabConfig GetGrabConfig(XElement element, ConfigOfSpider spiderConfig) { EGrabType grabType = (EGrabType)Enum.Parse(typeof(EGrabType), element.Attribute(nameof(EGrabType)).Value); switch (grabType) { case EGrabType.File: return(new GrabConfigOfFile(spiderConfig, element)); case EGrabType.StaticList: return(new GrabConfigOfStaticList(element, spiderConfig)); case EGrabType.DynamicList: return(new GrabConfigOfDynamicList(element, spiderConfig)); default: throw new NotImplementedException("暂未实现该类型的抓取配置" + grabType); } }
public static IGrabConfig GetGrabConfig(EGrabType grabType, ConfigOfSpider spiderConfig) { switch (grabType) { case EGrabType.File: return(new GrabConfigOfFile(spiderConfig)); case EGrabType.StaticList: return(new GrabConfigOfStaticList(spiderConfig)); case EGrabType.DynamicList: return(new GrabConfigOfDynamicList(spiderConfig)); case EGrabType.Detail: return(new GrabConfigOfDetail(spiderConfig)); default: throw new NotImplementedException("暂未实现该类型的抓取配置" + grabType); } }
private void SetDetailForGrabConfig(object sender, RoutedEventArgs e) { string type = (e.OriginalSource as Button).Content.ToString(); EGrabType grabType = (EGrabType)Enum.Parse(typeof(EGrabType), type); var grabConfig = SpiderManager.CurrentConfigOfSpider.GrabConfigs.FirstOrDefault(c => c.GetGrabType() == grabType); switch (grabType) { case EGrabType.File: new GrabManageOfFileGrab(this, SpiderManager, grabConfig == null ? new GrabConfigOfFile(SpiderManager.CurrentConfigOfSpider) : grabConfig as GrabConfigOfFile).Show(); break; case EGrabType.StaticList: new GrabManageOfSListContent(this, SpiderManager, grabConfig == null ? new GrabConfigOfStaticList(SpiderManager.CurrentConfigOfSpider) : grabConfig as GrabConfigOfStaticList).Show(); break; case EGrabType.Detail: case EGrabType.DynamicList: default: MessageBox.Show("未实现该类型的编辑窗口"); break; } }
public TGrabRequest(Guid spiderId, EGrabType grabType, String issueName) { SpiderId = spiderId; GrabType = grabType; IssueName = issueName; }